2013-07-28 4 views
0

기본 클래스에 정의 된 정적 메서드에서 파생 클래스 형식을 가져 오려고합니다. 내가 푸를 반환하는 코드 Foo.GetType() 필요정적 메서드 (기본 클래스)에서 클래스 형식 가져 오기

class BaseClass 
{ 
    public static Type GetType() 
    { 
     return MethodBase.GetCurrentMethod().GetType(); 
    } 
} 

class Foo : BaseClass 
{ 
} 

하지만 BaseClass로 내가 인스턴스를 제네릭을 사용하거나 초기화하지 않고 유형을 얻을 수있다 :(
을 반환
어떻게 : 같은
구조가 보인다. 이것을 달성 할 수 있습니까?

답변

1

typeof(Foo)을 사용하지 않는 이유는 무엇입니까? 더 이상 내용이 없으면 완벽하게 작동해야합니다.

1

FooGetType을 다시 선언하지 않으므로 Foo.GetType()BaseClass.GetType()과 실질적으로 같은 방법입니다. 따라서 Foo.GetType()을 쓸 때 컴파일러는 BaseClass이 메서드를 실제로 구현하는 유형이므로 BaseClass.GetType()에 대한 호출을 내 보냅니다.

어쨌든, 당신이하고있는 것은 의미가 없습니다. Foo.GetType()을 작성하는 경우 이미 Foo을 돌려 주길 원한다는 것을 알고 있으므로 typeof(Foo) 만 사용할 수 있습니다.

관련 문제