Aracılığıyla paylaş


Erişilebilirlik etki alanı (C# Reference)

Üye hangi program bölümlerine başvurulabilir üye erişilebilirlik etki alanını belirtir.Üye başka bir tür içinde geçmişse, erişilebilirlik etki her ikisi için de belirlenen Erişilebilirlik düzeyini üyesi ile hemen kapsayan türdeki erişilebilirlik etki alanı.

Üst düzey türü erişilebilirlik etki alanı en az program içinde bildirilen projenin metindir.Diğer bir deyişle, etki alanı bu projenin kaynak dosyalarının tümünü içerir.İç içe türü erişilebilirlik etki alanı en az program türünde bildirilmiş metindir.Diğer bir deyişle, tüm iç içe türü içeren tür gövde etki alanıdır.Hiçbir zaman erişilebilirlik etki alanında iç içe türü kapsayan tür aşıyor.Bu kavramlar aşağıdaki örnekte gösterilmiştir.

Örnek

Bu örnek, bir üst düzey türü içerir T1ve iç içe geçmiş iki sınıf M1 ve M2.Sınıflar bildirilen farklý eriþebilirlik olan alanları içerir.De Main yöntemi, bir açıklamayı izleyen her deyim, her üyenin erişilebilirlik etki alanı belirtmek için.Erişilemeyen üyeler unutup ifadeleri diye dikkat edin.Erişilemeyen bir üye başvurarak neden derleyici hataları görmek istiyorsanız, yorum bir anda kaldırın.


namespace AccessibilityDomainNamespace
{
    public class T1
    {
        public static int publicInt;
        internal static int internalInt;
        private static int privateInt = 0;
        static T1()
        {
            // T1 can access public or internal members
            // in a public or private (or internal) nested class
            M1.publicInt = 1;
            M1.internalInt = 2;
            M2.publicInt = 3;
            M2.internalInt = 4;

            // Cannot access the private member privateInt
            // in either class:
            // M1.privateInt = 2; //CS0122
        }

        public class M1
        {
            public static int publicInt;
            internal static int internalInt;
            private static int privateInt = 0;
        }

        private class M2
        {
            public static int publicInt = 0;
            internal static int internalInt = 0;
            private static int privateInt = 0;
        }
    }

    class MainClass
    {
        static void Main()
        {
            // Access is unlimited:
            T1.publicInt = 1;

            // Accessible only in current assembly:
            T1.internalInt = 2;

            // Error CS0122: inaccessible outside T1:
            // T1.privateInt = 3;  

            // Access is unlimited:
            T1.M1.publicInt = 1;

            // Accessible only in current assembly:
            T1.M1.internalInt = 2;

            // Error CS0122: inaccessible outside M1:
            //    T1.M1.privateInt = 3; 

            // Error CS0122: inaccessible outside T1:
            //    T1.M2.publicInt = 1;

            // Error CS0122: inaccessible outside T1:
            //    T1.M2.internalInt = 2;

            // Error CS0122: inaccessible outside M2:
            //    T1.M2.privateInt = 3;



            // Keep the console open in debug mode.
            System.Console.WriteLine("Press any key to exit.");
            System.Console.ReadKey();

        }
    }
}

C# dil belirtiminin

Daha fazla bilgi için bkz: C# dil belirtiminin. Dil belirtimi, C# sözdizimi ve kullanımı için nihai kaynaktır.

Ayrıca bkz.

Başvuru

C# anahtar sözcükler

Erişim değiştiricileri (C# Reference)

Erişilebilirlik düzeyleri (C# Reference)

Erişilebilirlik düzeyleri (C# Reference) kullanma sınırlamaları

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

Ortak (C# Reference)

Özel (C# Reference)

korumalı (C# Reference)

iç (C# Reference)

Kavramlar

C# Programlama Kılavuzu

Diğer Kaynaklar

C# Başvurusu