我知道如何获得当前的方法(MethodBase.GetCurrentMethod()).
但是,DeclaringType属性MethodBase将为我提供定义方法的类型.
我感兴趣的是在运行时实际调用它的方法的类型.
如果你的意思是对象本身的类型,那么只需使用this.GetType()?这将为您提供this当前方法正在执行的类型.
如果您指的是执行该方法的引用类型,那么实际上无法确定.以虚拟方法为例.
abstract class Animal {
public abstract void MakeNoise();
}
abstract class Dog : Animal { }
class Labrador : Dog {
public override void MakeNoise() {
...
}
}
Run Code Online (Sandbox Code Playgroud)
引用类型可以是Animal但是如果对象是Labrador那么MakeNoise将调用该方法的版本.他们没有办法从MakeNoise方法知道它是否是从一个调用Animal,Dog或Labrador实例.
| 归档时间: |
|
| 查看次数: |
85 次 |
| 最近记录: |