对于类型,有命令GetFields()和命令GetNestedTypes()。 GetFields()不返回嵌套类型。 我对字段和嵌套类型之间的区别感到困惑。 例子非常有帮助! 谢谢
答案 0 :(得分:4)
字段是直接在类或结构中声明的任何类型的变量。字段是其包含类型的成员。 (https://msdn.microsoft.com/en-us/library/ms173118.aspx)
和
在类或结构中定义的类型称为嵌套类型。 (https://msdn.microsoft.com/en-us/library/ms173120.aspx)
例如,在班级
class Foo
{
private int a;
public class Bar
{
// ...
}
}
a
是一个字段,Bar
是嵌套类型。
答案 1 :(得分:1)
class Foo {
private String _aField;
private class ANestedClass {
private String _aFieldInANestedClass;
}
}
像这样:
public void Blargh() {
Foo foo = new Foo();
FieldInfo aField = foo.GetType().GetField("_aField");
String aFieldValue = aField.GetValue( foo );
Type[] nestedTypes = foo.GetType().GetNestedTypes();
Type aNestedClass = nestedTypes.Single( t => t.Name == "ANestedClass" );
}