Freigeben über


protected (C#-Referenz)

Bei dem protected-Schlüsselwort handelt es sich um einen Zugriffsmodifizierer für Member.Ein geschützter Member ist innerhalb seiner Klasse und für abgeleitete Klasseninstanzen zugreifbar.Einen Vergleich von protected mit den anderen Zugriffsmodifizierern finden Sie unter Zugriffsebenen.

Beispiel

Auf einen geschützten Member einer Basisklasse kann nur dann in einer abgeleiteten Klasse zugegriffen werden, wenn der Zugriff über den abgeleiteten Klassentyp erfolgt.Betrachten Sie z. B. das folgende Codesegment:

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

Die Anweisung a.x = 10 führt zu einem Fehler, da sie innerhalb der statischen Main-Methode und nicht als Instanz der Klasse B erstellt wird.

Strukturmember können nicht geschützt werden, da die Struktur nicht vererbt werden kann.

In diesem Beispiel wird die DerivedPoint-Klasse von Point abgeleitet.Aus diesem Grund kann direkt von der abgeleiteten Klasse auf die geschützten Member der Basisklasse zugegriffen werden.

    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

Wenn Sie die Zugriffsebenen von x und y in private ändern, gibt der Compiler folgende Fehlermeldungen aus:

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

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

C#-Programmiersprachenspezifikation

Weitere Informationen finden Sie in der C#-Sprachspezifikation. Die Sprachspezifikation ist die verbindliche Quelle für die Syntax und Verwendung von C#.

Siehe auch

Referenz

C#-Schlüsselwörter

Zugriffsmodifizierer (C#-Referenz)

Zugriffsebenen (C#-Referenz)

Modifizierer (C#-Referenz)

public (C#-Referenz)

private (C#-Referenz)

internal (C#-Referenz)

Konzepte

C#-Programmierhandbuch

Weitere Ressourcen

C#-Referenz