protected (C# Başvurusu)
Anahtar protected
sözcük bir üye erişim değiştiricidir.
Not
Bu sayfa erişimi kapsar protected
. anahtar protected
sözcüğü ve erişim değiştiricilerinin protected internal
private protected
de bir parçasıdır.
Korumalı üyeye sınıfı içinde ve türetilmiş sınıf örnekleri tarafından erişilebilir.
Diğer erişim değiştiricileriyle karşılaştırması protected
için bkz . Erişilebilirlik Düzeyleri.
Örnek 1
Temel sınıfın korumalı bir üyesi, türetilmiş bir sınıfta yalnızca erişim türetilmiş sınıf türü aracılığıyla gerçekleşirse erişilebilir. Örneğin, aşağıdaki kod kesimini göz önünde bulundurun:
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 a.x = 10
, B sınıfının bir örneği değil, main statik yönteminde yapıldığından bir hata oluşturur.
Yapı devralınamadığı için yapı üyeleri korunamıyor.
Örnek 2
Bu örnekte sınıfı DerivedPoint
öğesinden Point
türetilmiştir. 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 y
erişim düzeylerini x
özel olarak değiştirirseniz, derleyici şu hata iletilerini yayımlar:
'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'nde bildirilen erişilebilirlik. Dil belirtimi, C# sözdizimi ve kullanımı için kesin bir kaynaktır.