protected (C# Reference)
O protected palavra-chave é um modificador de acesso de membro. Um membro protegido é acessível dentro de sua classe e por instâncias da classe derivada. Para obter uma comparação de protected com outros modificadores de acesso, consulte Os níveis de acessibilidade.
Exemplo
Um membro protegido de uma classe base está acessível em uma classe derivada, somente se o acesso ocorre através do tipo de classe derivada. Por exemplo, considere o segmento de código a seguir:
class A
{
protected int x = 123;
}
class B : A
{
static void Main()
{
A a = new A();
B b = new B();
// Error CS1540, because x can only be accessed by
// classes derived from A.
// a.x = 10;
// OK, because this class derives from A.
b.x = 10;
}
}
A instrução a.x = 10 gera um erro porque ela é feita dentro do método estático principal e não uma instância da classe b.
Membros struct não podem ser protegidos porque a estrutura não pode ser herdada.
Neste exemplo, a classe DerivedPoint é derivada de Point. Portanto, você pode acessar os membros protegidos da classe base diretamente da classe derivada.
class Point
{
protected int x;
protected int y;
}
class DerivedPoint: Point
{
static void Main()
{
DerivedPoint dpoint = new DerivedPoint();
// Direct access to protected members:
dpoint.x = 10;
dpoint.y = 15;
Console.WriteLine("x = {0}, y = {1}", dpoint.x, dpoint.y);
}
}
// Output: x = 10, y = 15
Se você alterar os níveis de acesso de x e y para Particular, o compilador emitirá as mensagens de erro:
'Point.y' is inaccessible due to its protection level.
'Point.x' is inaccessible due to its protection level.
Especificação da linguagem C#
Para obter mais informações, consulte C# Language Specification A especificação de linguagem é a fonte definitiva para a sintaxe e o uso de C#.
Consulte também
Referência
Access Modifiers (C# Reference)
Accessibility Levels (C# Reference)