protected (C# Başvurusu)
anahtar protected sözcüğü bir üye erişimi değiştiricidir.
Not
Bu sayfa erişimi protected kapsar. anahtar protected sözcüğü, ve erişim protected internal private protected değiştiricilerinin de bir parçası olarak kullanılır.
Korumalı üyeye sınıfının içinde ve türetilmiş sınıf örnekleri tarafından erişilebilir.
diğer erişim protected değiştiricileriyle karşılaştırması için bkz. Erişilebilirlik Düzeyleri.
Örnek 1
Bir temel sınıfın korumalı üyesine yalnızca erişim türetilmiş sınıf türü aracılığıyla gerçekleşirse türetilmiş bir sınıfta erişilebilir. Örneğin, aşağıdaki kod kesimini düşünün:
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;
}
}
deyimi, B sınıfının bir örneği değil statik yöntem Main içinde yapılan a.x = 10 bir hata üretir.
Yapı devralınamayandan yapı üyeleri korunamaz.
Örnek 2
Bu örnekte sınıfı, DerivedPoint sınıfından Point türetildi. Bu nedenle, temel sınıfın korumalı üyelerine doğrudan türetilmiş sınıftan erişebilirsiniz.
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
ve erişim düzeylerini özel olarak x y değiştirirsanız,derleyici hata iletilerini verir:
'Point.y' is inaccessible due to its protection level.
'Point.x' is inaccessible due to its protection level.
C# dili belirtimi
Daha fazla bilgi için bkz. C# Dil Belirtimi'ne bildirilen erişilebilirlik. Dil belirtimi, C# sözdizimi ve kullanımı için kesin bir kaynaktır.