2013-07-28 57 views
0

我想从基类中定义的静态方法获取派生类类型。
的结构是这样的:从静态方法获取类类型(在基类上)

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

class Foo : BaseClass 
{ 
} 

我需要的代码Foo.GetType()返回但它返回BaseClass的 :(
我得类型,而不使用泛型或初始化实例
如何。我可以做到这一点吗?

回答

1

为什么不使用typeof(Foo)?没有更多关于你在做什么的上下文,它看起来应该完美地工作

1

由于Foo不重新声明GetTypeFoo.GetType()实际上是与BaseClass.GetType()相同的方法。所以当你编写Foo.GetType()时,编译器会发出BaseClass.GetType()的调用,因为BaseClass是实际实现该方法的类型。

无论如何,你在做什么没有道理;如果您编写Foo.GetType(),则您已知道您希望它返回Foo,因此您只能使用typeof(Foo)

相关问题