Domínio de acessibilidade (translation from VPE for Csharp Reference)

O domínio de acessibilidade de um membro Especifica em quais seções do programa de um membro pode ser referenciado.Se o membro estiver aninhado em outro tipo, o seu domínio de acessibilidade é determinado pelo nível de acessibilidade o membro e o domínio de acessibilidade do tipo imediatamente contido.

O domínio de acessibilidade de um tipo de nível superior é pelo menos o texto do programa de projeto que seja declarada no.Ou seja, o domínio inclui todos os os arquivos de fonte neste projeto.O domínio de acessibilidade de um tipo aninhado, pelo menos é o texto de programa do tipo na qual é declarada.Ou seja, o domínio é o corpo de tipo, que inclui todos os tipos aninhados.O domínio de acessibilidade de um tipo aninhado nunca excede do tipo recipiente.Esses conceitos são demonstrados no exemplo a seguir.

Exemplo

Este exemplo contém um tipo de nível superior, T1e duas classes aninhadas, M1 e M2. As classes contêm campos que tenham diferentes acessibilidade declarada.No Main método, um comentário segue cada demonstrativo para indicar o domínio de acessibilidade de cada membro. Observe que as instruções que tentam referenciar membros inacessíveis são comentadas.Se você quiser ver os erros de compilador causados por referência a um membro inacessível, remova os comentários de um de cada vez.

namespace AccessibilityDomainNamespace
{
    public class T1
    {
        public static int publicInt;
        internal static int internalInt;
        private static int privateInt = 0; // CS0414

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

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

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

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

            // Error: inaccessible outside T1:
            //    T1.myPrivateInt = 3;  

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

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

            // Error: inaccessible outside M1:
            //    T1.M1.myPrivateInt = 3; 

            // Error: inaccessible outside T1:
            //    T1.M2.myPublicInt = 1;

            // Error: inaccessible outside T1:
            //    T1.M2.myInternalInt = 2;

            // Error: inaccessible outside M2:
            //    T1.M2.myPrivateInt = 3;
        }
    }
}

Especificação da linguagem C#

Para obter mais informações, consulte as seções a seguir no Especificação da linguagem C#:

  • 3.5.1 Acessibilidade declarado

  • 3.5.2 Acessibilidade domínios

  • 3.5.4 Acessibilidade restrições

  • 10.3.5 Modificadores de acesso

  • 10.3.8.2 Acessibilidade declarada

Consulte também

Conceitos

Guia de Programação C#

Referência

Palavras-chave C#

Modificadores de acesso (referência C#)

Níveis de acessibilidade (referência C#)

Restrições usando níveis de acessibilidade (translation from VPE for Csharp Reference)

Modificadores de acesso (guia de programação C#)

public (referência C#) 

particular (referência C#)

(referência C#) protegida

(referência C#) interno

Outros recursos

Referência C#