Aracılığıyla paylaş


Erişim Değiştiricileri (C# Programlama Kılavuzu)

Bunlar diğer kodundan derlemenize veya diğer derlemeler kullanılıp kullanılamayacağını denetler ve erişilebilirlik düzeyini tüm türleri ve türü üyeleri vardır.Aşağıdaki erişim değiştiricileri bildirirken, türü veya üye erişilebilirliğini belirtmek için kullanabilirsiniz:

  • Ortak
    Türü veya üye başka bir kodu aynı derleme veya başvurduğu başka bir derleme tarafından erişilebilir.

  • private
    Türü veya üye yalnızca aynı sınıf veya yapı kodu tarafından erişilebilir.

  • korumalı
    Türü veya üye yalnızca kodu aynı sınıf veya yapı birimi veya bu sınıftan türetilmiş bir sınıf tarafından erişilebilir.

  • İç
    Türü veya üye herhangi bir kod aynı derlemede, ancak başka bir derleme tarafından erişilebilir.

  • protected internal
    Türü veya üye olduğu bildirilmiş veya içinden derlemesinde herhangi bir kod tarafından erişilebilen başka bir derleme türetilmiş bir sınıf.Baþka montajý erişimden korunan iç öğesi olarak bildirilen sınıfından türeyen bir sınıf bildirimi içinde gerçekleşmesi gerekir ve türetilmiş bir sınıf türü örneği üzerinden yere şarttır.

Erişim değiştiricileri bir türü ve üye belirleme konusunda aşağıdaki örneklerde gösterilmektedir:

public class Bicycle
{
    public void Pedal() { }
}

Tüm erişim değiştiricileri tüm türleri veya tüm bağlamlarda üyeleri tarafından kullanılabilir ve bazı durumlarda türü üye erişilebilirliğini kapsayan türü erişilebilirlik tarafından sınırlanır.Aşağıdaki bölümlerde, erişilebilirlik hakkında ayrıntılı bilgi sağlar.

Sınıf ve yapı erişilebilirlik

Doğrudan bir ad alanı (diğer sınıf ya da yapının içinde yuvalanmış değil diğer sözcükler,) içinde bildirilen sınıflara ve ortak veya iç olabilir.Herhangi bir erişim değiştiricisi belirtilmezse varsayılan iç kullanılır.

Yapı üyeleri, iç içe geçmiş sınıflar ve yapılar, dahil olarak ortak, iç veya özel bildirilebilir.Sınıf üyeleri, iç içe geçmiş sınıflar ve yapılar da dahil olmak üzere, ortak, iç, korumalı, iç veya özel korumalı.Sınıf üyeleri ve iç içe geçmiş sınıflar ve yapılar, dahil olmak üzere yapı üyeleri için erişim düzeyi varsayılan olarak özeldir.Özel iç içe türü kapsayan tür dışında erişilebilir değil.

Türetilmiþ sýnýflarýn kendi temel türlerinden daha fazla erişilebilirlik olamaz.Başka bir deyişle, public sınıfı olamaz B bir iç sınıfından türeyen A.Bu izin, yapma etkisi yoktur A ortak, çünkü tüm korumalı veya iç üyesi A türetilmiş sınıftan erişilebilir.

Belirli etkinleştirebilirsiniz iç türlerinizi InternalsVisibleToAttribute kullanarak erişmek için diğer mamulleri.Daha fazla bilgi için bkz. Arkadaş Derlemeler (C# ve Visual Basic).

Sınıf ve yapı üye erişilebilirlik

Sınıf üyeleri (iç içe geçmiş sınıflar ve yapılar dahil) herhangi erişim beş tür bildirilebilir.Yapı üyeleri yapılar devralma desteklemediğinden korumalı olarak bildirilemez.

Normal olarak, erişilebilirlik üyesinin içerdiği türü Erişilebilirlik'den büyük değildir.Ancak, üye arabirim yöntemleri uygulayan veya ortak bir taban sınıfta tanımlanmış sanal yöntemleri geçersiz kılar, ortak bir iç sınıf üyesi derlemenin dışından erişilebilir olabilir.

Bir alan, özellik veya olay herhangi bir üyenin türü en az üye olarak olarak erişilebilir olmalıdır.Benzer şekilde, dönüş türü ve herhangi bir üyenin bir yöntemi, dizinleyici ya da temsilci parametre türleri en az üye olarak olarak erişilebilir olmalıdır.Örneğin, genel bir yöntem olamaz M , bir sınıf işlevi C sürece C de ortaktır.Benzer şekilde, korumalı bir özellik türü olamaz A , A özel olarak bildirilmiş.

Kullanıcı tanımlı işleçler her zaman genel olarak bildirilmelidir.Daha fazla bilgi için bkz. operator (C# Başvurusu).

Yıkıcı erişilebilirlik değiştiricileri olamaz.

Bir sınıf veya yapı birimi üyesi için erişim düzeyi ayarlamak için aşağıdaki örnekte gösterildiği gibi üye bildirimi için uygun anahtar sözcüğünü ekleyin.

// public class: 
public class Tricycle
{
    // protected method: 
    protected void Pedal() { }

    // private field: 
    private int wheels = 3;

    // protected internal property: 
    protected internal int Wheels
    {
        get { return wheels; }
    }
}

[!NOT]

Korumalı dahili erişilebilirlik düzeyini anlamına gelir, ya da iç, not protected ve internal.Başka bir deyişle, korumalı iç üye herhangi bir sınıftan türetilmiş sınıflar da dahil olmak üzere aynı derlemede erişilebilir.Türetilmiş sınıfları aynı derlemede erişilebilirliği sınırlamak için sınıf iç bildirmek ve üyelerinin korumalı olarak bildirmek.

Diğer türleri

Bildirilen arabirimleri, ortak veya dahili olarak bir ad alanı içinde doğrudan bildirilebilir ve sınıflar ve yapılar, dahili erişim için arabirimler varsayılan olduğu gibi.Arabirim üyeleri her zaman bir sınıf veya yapı birimi erişmek diğer türlerini etkinleştirmek için bir arabirim amacı olduğu için ortaktır.Arabirim üyeleri için erişim Değiştirici yok uygulanabilir.

Numaralandırma üyeleri her zaman ortak ve erişim Değiştirici yok uygulanabilir.

Temsilciler, sınıflar ve yapılar gibi davranır.Varsayılan olarak, bunlar doğrudan bir ad alanı içinde bildirirken dahili erişimi ve iç içe, özel erişim vardır.

C# dil belirtiminin

Daha fazla bilgi edinmek için, bkz. C# Dil Belirtimi. Dil belirtimi, C# sözdizimi ve kullanımı için kesin bir kaynaktır.

Ayrıca bkz.

Başvuru

Sınıflar ve Yapılar (C# Programlama Kılavuzu)

Arabirimler (C# Programlama Kılavuzu)

private (C# Başvurusu)

public (C# Başvurusu)

internal (C# Başvurusu)

protected (C# Başvurusu)

class (C# Başvurusu)

struct (C# Başvurusu)

interface (C# Başvurusu)

Kavramlar

C# Programlama Kılavuzu