gpt4 book ai didi

c# - 你能使用反射来找出当前方法正在执行的对象的类型吗?

转载 作者:行者123 更新时间:2023-12-02 19:37:03 25 4
gpt4 key购买 nike

我知道如何获取当前方法 (MethodBase.GetCurrentMethod())。

但是,MethodBaseDeclaringType 属性将为我提供定义该方法的类型。

我对运行时实际调用的方法的类型感兴趣。

最佳答案

如果您指的是对象本身的类型,那么只需使用 this.GetType() 即可?这将为您提供当前方法正在执行的 this 类型。

如果您指的是执行该方法的引用的类型,那么实际上无法确定。以虚拟方法为例。

abstract class Animal {
public abstract void MakeNoise();
}
abstract class Dog : Animal { }
class Labrador : Dog {
public override void MakeNoise() {
...
}
}

引用类型可以是Animal,但如果对象是Labrador,则将调用该版本的MakeNoise方法。他们无法从 MakeNoise 方法知道它是否是从 AnimalDogLabrador 调用的实例。

关于c# - 你能使用反射来找出当前方法正在执行的对象的类型吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8887588/

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