protected (C# Başvurusu)protected (C# Reference)

protected Anahtar sözcüğü bir üye erişim değiştiricisidir.The protected keyword is a member access modifier.

Bu sayfa erişimi protected içerir.This page covers protected access. Anahtar sözcüğü ayrıca protected internal veprivate protected erişim değiştiricilerin bir parçasıdır. protectedThe protected keyword is also part of the protected internal and private protected access modifiers.

Korunan bir üyeye kendi sınıfı içinde ve türetilmiş sınıf örnekleri tarafından erişilebilir.A protected member is accessible within its class and by derived class instances.

Diğer erişim değiştiricilerine protected ilişkin bir karşılaştırma için bkz. Erişilebilirlik düzeyleri.For a comparison of protected with the other access modifiers, see Accessibility Levels.

ÖrnekExample

Bir temel sınıfın korunan ü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.A protected member of a base class is accessible in a derived class only if the access occurs through the derived class type. Örneğin, aşağıdaki kod kesimini göz önünde bulundurun:For example, consider the following code segment:

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;
    }
}

İfade a.x = 10 , B sınıfının bir örneği değil ana static yöntemi içinde yapıldığından bir hata oluşturur.The statement a.x = 10 generates an error because it is made within the static method Main, and not an instance of class B.

Struct devralınamadığı için yapı üyeleri korunamaz.Struct members cannot be protected because the struct cannot be inherited.

ÖrnekExample

Bu örnekte, sınıfı DerivedPoint öğesinden Pointtüretilir.In this example, the class DerivedPoint is derived from Point. Bu nedenle, doğrudan türetilmiş sınıftan temel sınıfın korunan üyelerine erişebilirsiniz.Therefore, you can access the protected members of the base class directly from the derived class.

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

x Vey erişim düzeylerini özelolarak değiştirirseniz, derleyici hata iletilerini de verebilir:If you change the access levels of x and y to private, the compiler will issue the error messages:

'Point.y' is inaccessible due to its protection level.

'Point.x' is inaccessible due to its protection level.

C# dili belirtimiC# language specification

Daha fazla bilgi için bkz. C# dil belirtiminde Erişilebilirlik bildirimi .For more information, see Declared accessibility in the C# Language Specification. Dil belirtimi, C# sözdizimi ve kullanımı için kesin bir kaynaktır.The language specification is the definitive source for C# syntax and usage.

Ayrıca bkz.See also