偶然在C#中看到內部類,即在類的內部定義類, 例如:System.Windows.Forms.Control類中又有ControlCollection,ControlAccessibleObject類的定義, 內部類的定義是為了供給該類自身使用,外部類無法進行使用,作用是:使內部類的可見性更小 可參考如下實例: [csharp] v namespace DesignPattern.InnerClass { /// <summary> /// 外部類 /// </summary> public class OuterClass { /// <summary> /// 類名 /// </summary> public string Name { get; set; } public string InnerClassName { get { InnerClass inner = new InnerClass(); return inner.Name; } } public OuterClass.InnerClass myInnerClass { get; set; } /// <summary> /// 內部類(其訪問修飾符決定其對外的可見性) /// </summary> public class InnerClass { /// <summary> /// 類名 /// </summary> public string Name { get { return "My Name is InnerClass"; } } } } /// <summary> /// 內部類 /// </summary> public class InnerClass { /// <summary> /// 類名 /// </summary> public string Name { get { return "My Name is InnerClass"; } } /// <summary> /// 時間 /// </summary> public string Date { get { return "2013-1-1"; } } } public class Test { public void TestMethod() { OuterClass outClass = new OuterClass(); string result = outClass.InnerClassName; //1.內部類只能通過(外部類.內部類)的方式使用, //2.另外內部類如果不聲明為public時,則外部程序無法使用它 OuterClass.InnerClass inner = new OuterClass.InnerClass(); string name = inner.Name; //非內部類測試,在編譯時兩者(InnerClass與OutClass.InnerClass)不相沖突 InnerClass inner2 = new InnerClass(); string name2 = inner2.Name; string date = inner2.Date; //總之,內部類是主要是為了提供給其外部類自身使用, //使內部類的可見性更小一些,提高封裝性 } } }