我想做的是类似于:
public abstract class BaseClass
{
public static Type GetType()
{
return typeof(BaseClass);
}
}
但是当我导出它的时候
public class DerivedClass : BaseClass
{
}
我想得到
Assert.AreEqual(typeof(DerivedClass), DerivedClass.GetType());
如何更改 BaseClass 以使此断言为真?
最佳答案
静态方法不被继承。
当通过派生类之一调用基类的静态方法时,编译器用 BaseClass
替换 DerivedClass
。例如,下面是调用 DerivedClass.GetType()
的 IL 代码:
IL_0002: call class [mscorlib]System.Type Tests.Program/BaseClass::GetType()
关于c# - 如何在 .NET 的基类静态方法中获取类类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4669166/