次の方法で共有


入れ子になった型 (C# プログラミング ガイド)

クラス構造体、またはインターフェイス内で定義された型は、入れ子になった型と呼ばれます。 次に例を示します。

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

外側の型がクラス、インターフェイス、構造体のいずれであるかに関係なく、入れ子になった型は既定で private になります。これらは、その包含型からのみアクセスできます。 前の例では、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;
        }
    }
}

入れ子になった型は、その包含型からアクセスできるすべてのメンバーにアクセスできます。 継承された保護されたメンバーを含め、包含型のプライベート メンバーと保護されたメンバーにアクセスできます。

前の宣言では、クラス Nested の完全な名前が Container.Nested。 これは、次のように、入れ子になったクラスの新しいインスタンスを作成するために使用される名前です。

Container.Nested nest = new Container.Nested();

こちらも参照ください