共用方式為


巢狀型別 (C# 程式設計手冊)

類別結構內定義的型別稱為巢狀型別。 例如:

class Container
{
    class Nested
    {
        Nested() { }
    }
}

無論外部型別是類別或結構,巢狀型別的預設值為私用,但可以設為 公用、 受保護內部, 保護內部,或 私用。 在先前範例中,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();

請參閱

參考

類別和結構 (C# 程式設計手冊)

存取修飾詞 (C# 程式設計手冊)

建構函式 (C# 程式設計手冊)

概念

C# 程式設計手冊