protected (Referenční dokumentace jazyka C#)
Klíčové protected
slovo je modifikátor přístupu člena.
Poznámka:
Tato stránka popisuje protected
přístup. Klíčové protected
slovo je také součástí protected internal
modifikátorů přístupu.private protected
Chráněný člen je přístupný v rámci své třídy a odvozenými instancemi třídy.
Porovnání protected
s ostatními modifikátory přístupu najdete v tématu Úrovně přístupnosti.
Příklad 1
Chráněný člen základní třídy je přístupný v odvozené třídě pouze v případě, že k přístupu dochází prostřednictvím odvozeného typu třídy. Představte si například následující segment kódu:
class A
{
protected int x = 123;
}
class B : A
{
static void Main()
{
var a = new A();
var 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.x = 10
Příkaz vygeneruje chybu, protože se provádí v rámci statické metody Main, a ne instance třídy B.
Členy struktury nelze chránit, protože strukturu nelze zdědit.
Příklad 2
V tomto příkladu je třída DerivedPoint
odvozena z Point
. Proto můžete přistupovat k chráněným členům základní třídy přímo z odvozené třídy.
class Point
{
protected int x;
protected int y;
}
class DerivedPoint: Point
{
static void Main()
{
var dpoint = new DerivedPoint();
// Direct access to protected members.
dpoint.x = 10;
dpoint.y = 15;
Console.WriteLine($"x = {dpoint.x}, y = {dpoint.y}");
}
}
// Output: x = 10, y = 15
Pokud změníte úrovně x
přístupu a y
na soukromé, kompilátor vydá chybové zprávy:
'Point.y' is inaccessible due to its protection level.
'Point.x' is inaccessible due to its protection level.
specifikace jazyka C#
Další informace naleznete v tématu Deklarovaná přístupnost ve specifikaci jazyka C#. Specifikace jazyka je úplným a rozhodujícím zdrojem pro syntaxi a použití jazyka C#.