2009-03-28 5 views
1

주어진 도메인 논리를 지원하는 공통된 속성 및 메서드 집합을 가진 개체 그룹이 주어지면 이러한 개체에 특정 정적 메서드가 있는지 확인하는 방법이 있습니까?C에서 정적 메서드가 필요함

나는 인터페이스 구현이 이것을 달성하지 못한다고 결론을 내렸다. (메소드는 인스턴스 만 가능하다.) 정적 메소드는 오버라이드, 가상 또는 추상으로 표시 될 수 없다.

미리 감사드립니다.

답변

4

번호

(참고 : F 번호에서 당신은 "인라인"기능과 "^"유형 (T 정적 방법 ToInt (T있다 유형 T FORALL 예를 사용하여 이러한 제약을 표현할 수)이이 'int를 돌려 컴파일러는 효과적으로 각 호출 사이트를 특정 유형으로 자동 확장합니다.)

+0

감사합니다. 나는 확신한다. –

3

형식을 정적 멤버로 지정하는 유일한 방법은 해당 유형에서 상속하는 것입니다. 모든 유형의 정적 멤버를해야합니다, 당신은 파생 유형을 무시해야하는 경우는 "새로운"키워드를 사용할 수 있습니다

static void Main(string[] args) 
{ 
    Console.WriteLine(Base.Hello()); 
    Console.WriteLine(Derived.Hello()); 
    Console.Read(); 
    /* output will be: 
    Hello 
    World 
    */ 
} 

public class Base 
{ 
    public static object Hello() 
    { 
     return "Hello"; 
    } 
} 

public class Derived : Base 
{ 
    public static new object Hello() 
    { 
     return "World"; 
    } 
} 

그것은 추상적 인/오버라이드 아주 동일 하,하지만 소비자의 관점에서 비슷하게 작동합니다.