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

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

Bu sayfa kapsayan protected erişim.This page covers protected access. protected Anahtar sözcüğü, ayrıca parçası protected internal ve private protected erişim değiştiricileri.The protected keyword is also part of the protected internal and private protected access modifiers.

Korumalı üye sınıfı içinde ve türetilen sınıf örnekleri tarafından erişilebilir.A protected member is accessible within its class and by derived class instances.

Bir karşılaştırması protected diğer erişim değiştiricileri ile bkz erişilebilirlik düzeyleri.For a comparison of protected with the other access modifiers, see Accessibility Levels.

ÖrnekExample

Yalnızca türetilmiş sınıf türü erişim ortaya çıkarsa, bir taban sınıfın korumalı bir üye türetilen 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 kesimi göz önünde bulundurun:For example, consider the following code segment:

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

Deyim a.x = 10 ana statik yöntem içinde yapılır ve örneği değil, sınıf b olduğundan 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.

Yapı üyeleri struct devralınamaz korunamaz.Struct members cannot be protected because the struct cannot be inherited.

ÖrnekExample

Bu örnekte, sınıf DerivedPoint türetilir Point.In this example, the class DerivedPoint is derived from Point. Bu nedenle, temel sınıfın korumalı üyeler türetilmiş sınıftan doğrudan 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() 
    {
        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

Erişim düzeyleri değiştirirseniz x ve y için özel, derleyici hata iletilerini verir: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 erişilebilirlik bildirilen içinde C# dil belirtimi.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