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
Referência
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#)