类型字段与.NET中的嵌套类型

本文关键字:嵌套类型 NET 字段 类型 | 更新日期: 2023-09-27 18:21:17

对于类型,有命令GetFields()和命令GetNestedTypes()。GetFields()不返回嵌套类型。我对字段和嵌套类型之间的区别感到困惑。举例会很有帮助!感谢

类型字段与.NET中的嵌套类型

字段是直接在类或结构中声明的任何类型的变量。字段是其包含类型的成员。(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是一个嵌套类型。

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" );
}