这被编译器接受:

FieldInfo[] fieldInfos;
fieldInfos = typeof(MyClass).GetFields(BindingFlags.NonPublic | BindingFlags.Instance);

这不被编译器接受:
FieldInfo[] fieldInfos;
fieldInfos = typeof(this.GetType()).GetFields(BindingFlags.NonPublic | BindingFlags.Instance);

如何修复第二个语法?

最佳答案

您不需要 typeof() 围绕 GetType 调用,因为它已经返回一个 Type 对象。 typeof 是一种特殊语法,用于从类型名称获取 Type 对象,而无需执行类似 Type.GetType("Foo") 的操作。

FieldInfo[] fieldInfos;
fieldInfos = GetType().GetFields(BindingFlags.NonPublic |
                                 BindingFlags.Instance);

关于c# - 如何在C#反射中列出当前类的字段(this.GetType()问题)?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/4836900/

10-10 12:28