在派生类型上调用静态时是否可以检测类型

Geo*_*uer 3 c# static

特定

public class Original {
  public static DoStuff() {
  }
}

public class Derived : Original {
}
Run Code Online (Sandbox Code Playgroud)

在打电话时

Derived.DoStuff();
Run Code Online (Sandbox Code Playgroud)

除了要求的奇怪之外,是否有可能在内部DoStuff()检测它被调用的类?

即是有可能的范围内实施DoStuff(),告诉之间的区别Original.DoStuff();Derived.DoStuff();

Jon*_*eet 8

不在C#中,不 - 编译的IL直接指向Original.DoStuff.

(我刚刚验证了VB显然对静态调用做了同样的事情,而IIRC在通过"子"引用调用方法时生成的代码中VB和C#之间存在差异.)