我认为用一个例子来解释是最容易的.
假设我有以下内容:
public class A
{
public static string DoWork() { return "working" + <here I want the class name>;}
}
public class B : A{}
Run Code Online (Sandbox Code Playgroud)
现在,如果我这样做
A.DoWork();
Run Code Online (Sandbox Code Playgroud)
我希望结果"工作<A>的完整类型名称".
如果我做
B.DoWork();
Run Code Online (Sandbox Code Playgroud)
我想要相同的东西,但完整的类型名称B.是否可能?
我知道做这样的事情很难看,但是当你使用某些CMS系统并且你想写一些有用的东西时,你必须弯曲规则.
我想要相同的东西,但完整的类型名称B.是否可能?
不会.呼叫B.DoWork实际上被编译成IL以A.DoWork直接呼叫.IL中没有任何迹象表明您实际上已经打过电话B.DoWork,所以如果不查看原始来源就无法说明.