在 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/