protected (Referência de C#)
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 os outros modificadores de acesso, consulte 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 ele é feito 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 a Especificação da linguagem C#. A especificação da linguagem é a fonte definitiva para a sintaxe e o uso de C#.
Consulte também
Referência
Modificadores de acesso (Referência de C#)
Níveis de acessibilidade (Referência de C#)
Modificadores (Referência de C#)