C# 反射 - 派生类型中的基类静态字段

标签 c# reflection inheritance static field

在 C# 中,当我反射(reflect)派生类型时,为什么看不到基类的静态字段?

我已经尝试了 type.GetFields(BindingFlags.Static)type.GetFields()

最佳答案

这就是它的工作原理。 static 成员实际上是非面向对象的东西。它们不是多态的,它们确实属于它们的声明类型,并且与继承层次结构中的其他类型无关。例如,在访问派生类中的静态成员之前,不需要运行基类的静态初始化程序。

除非指定了 BindingFlags.FlattenHierarchy,否则不会返回基类的

static 成员:

type.GetFields(BindingFlags.Static 
             | BindingFlags.FlattenHierarchy
             | BindingFlags.Public)

关于C# 反射 - 派生类型中的基类静态字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1325280/

相关文章:

scala - Scala反射,查找并实例化具有给定注释的所有类

java - 调用类中的所有方法

c++ - 为什么我的球使用加速度作为速度?

C# HttpWebRequest - 如何在不下载的情况下区分 HTML 和 XML 页面?

c# - 创建多个类型的通用方法

c# - Xamarin MediaElement不会发布视频源

java - 我在运行时向方法添加了预定义注释,我希望更改永久有效吗?

oop - 从基类继承许多类是不好的 OOP 实践吗?

JavaScript 继承 Object.create

c# - 是否有将执行 Excel NORMINV 函数的 C# 库?