gpt4 book ai didi

c# - 如何在 .NET 的基类静态方法中获取类类型?

转载 作者:太空宇宙 更新时间:2023-11-03 22:17:07 25 4
gpt4 key购买 nike

我想做的是类似于:

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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com