偶然在C#中看到內部類,即在類的內部定義類,
例如:System.Windows.Forms.Control類中又有ControlCollection,ControlAccessibleObject類的定義,
內部類的定義是為了供給該類自身使用,外部類無法進行使用,作用是:使內部類的可見度更小
可參考如下執行個體:
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; //總之,內部類是主要是為了提供給其外部類自身使用, //使內部類的可見度更小一些,提高封裝性 } }}