巢狀型別 (C# 程式設計手冊)
更新:2007 年 11 月
class Container
{
class Nested
{
Nested() { }
}
}
不論外部型別是類別或結構,巢狀型別會預設為 private,但可以設定為 public、protected internal、protected、internal 或 private。在先前範例中,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;
}
}
}
巢狀型別可存取包含型別的 private 和 protected 成員,包括任何繼承的 private 或 protected 成員。
在先前的宣告,Nested 類別的完整名稱為 Container.Nested。這是用來建立巢狀類別新執行個體的名稱,如下所示:
Container.Nested nest = new Container.Nested();