多应用+插件架构,代码干净,二开方便,首家独创一键云编译技术,文档视频完善,免费商用码云13.8K 广告
# 嵌套类型(C# 编程指南) 在[类](https://msdn.microsoft.com/zh-CN/library/0b0thckt.aspx)或[结构](https://msdn.microsoft.com/zh-CN/library/ah19swz4.aspx)内部定义的类型称为嵌套类型。例如: ``` class Container { class Nested { Nested() { } } } ``` 不管外部类型是类还是结构,嵌套类型均默认为 [private](https://msdn.microsoft.com/zh-CN/library/st6sy9xe.aspx),但是可以设置为 [public](https://msdn.microsoft.com/zh-CN/library/yzh058ae.aspx)、protected internal、[protected](https://msdn.microsoft.com/zh-CN/library/bcd5672a.aspx)、[internal](https://msdn.microsoft.com/zh-CN/library/7c5ka91b.aspx) 或 [private](https://msdn.microsoft.com/zh-CN/library/st6sy9xe.aspx)。在上面的示例中,Nested 对外部类型是不可访问的,但可以设置为 public,如下所示: ``` class Container { public class Nested { Nested() { } } } ``` 嵌套类型(或内部类型)可访问包含类型(或外部类型)。若要访问包含类型,请将其作为构造函数传递给嵌套类型。例如: ``` public class Container { public class Nested { private Container parent; public Nested() { } public Nested(Container parent) { this.parent = parent; } } } ``` 嵌套类型可以访问其包含类型可以访问的所有成员。它可以访问包含类型的私有成员和受保护成员(包括所有继承的受保护成员)。 在前面的声明中,类 Nested 的完整名称为 Container.Nested。这是用来创建嵌套类新实例的名称,如下所示: ``` Container.Nested nest = new Container.Nested(); ``` ## 请参阅 [C# 编程指南](https://msdn.microsoft.com/zh-CN/library/67ef8sbd.aspx) [类和结构(C# 编程指南)](https://msdn.microsoft.com/zh-CN/library/ms173109.aspx) [访问修饰符(C# 编程指南)](https://msdn.microsoft.com/zh-CN/library/ms173121.aspx) [构造函数(C# 编程指南)](https://msdn.microsoft.com/zh-CN/library/ace5hbzh.aspx)