从静态方法(在基类上)获取类类型
本文关键字:获取 类型 基类 静态方法 | 更新日期: 2023-09-27 18:25:11
我正试图从基类中定义的静态方法中获取派生类类型
结构看起来像:
class BaseClass
{
public static Type GetType()
{
return MethodBase.GetCurrentMethod().GetType();
}
}
class Foo : BaseClass
{
}
我需要代码Foo.GetType()
来返回Foo,但它返回BaseClass:(
我必须在不使用泛型或初始化实例的情况下获取类型
我怎样才能做到这一点?
为什么不使用typeof(Foo)
?如果没有更多关于你正在做什么的上下文,看起来这应该是完美的。
由于Foo
不重新声明GetType
,因此Foo.GetType()
实际上与BaseClass.GetType()
是相同的方法。因此,当您编写Foo.GetType()
时,编译器会发出对BaseClass.GetType()
的调用,因为BaseClass
是实际实现该方法的类型。
不管怎样,你所做的没有意义;如果你写Foo.GetType()
,你已经知道你希望它返回Foo
,所以你可以只使用typeof(Foo)
。