İç içe Geçmiş Türler (C# Programlama Kılavuzu)

Sınıf, yapı veya arabirim içinde tanımlanan bir tür iç içe geçmiş tür olarak adlandırılır. Örneğin:

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

Dış türün bir sınıf, arabirim veya yapı olmasına bakılmaksızın, iç içe geçmiş türler varsayılan olarak özeldir; bunlara yalnızca kendi içeren türlerinden erişilebilir. Önceki örnekte, Nested sınıfı dış türler için erişilemez.

İç içe bir türün erişilebilirliğini tanımlamak için aşağıdaki gibi bir erişim değiştirici de belirtebilirsiniz:

Aşağıdaki örnek sınıfı genel Nested yapar:

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

İç içe veya iç tür, içeren veya dış türüne erişebilir. İç içe türüne erişmek için, bunu iç içe türün oluşturucusunun bağımsız değişkeni olarak geçirin. Örneğin:

public class Container
{
    public class Nested
    {
        private Container? parent;

        public Nested()
        {
        }
        public Nested(Container parent)
        {
            this.parent = parent;
        }
    }
}

İç içe yerleştirilmiş bir türün, içeren türü için erişilebilir olan tüm üyelere erişimi vardır. Devralınan korumalı üyeler dahil olmak üzere, içeren türün özel ve korumalı üyelerine erişebilir.

Önceki bildirimde sınıfın Nested tam adı şeklindedir Container.Nested. Bu, iç içe sınıfın yeni bir örneğini oluşturmak için aşağıdaki gibi kullanılan addır:

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

Ayrıca bkz.