(0) exportieren Drucken
Alle erweitern
Dieser Artikel wurde maschinell übersetzt. Bewegen Sie den Mauszeiger über die Sätze im Artikel, um den Originaltext anzuzeigen. Weitere Informationen
Übersetzung
Original
Dieser Artikel wurde noch nicht bewertet - Dieses Thema bewerten.

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.

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.

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

Fanden Sie dies hilfreich?
(1500 verbleibende Zeichen)
Vielen Dank für Ihr Feedback.

Community-Beiträge

HINZUFÜGEN
Anzeigen:
© 2014 Microsoft. Alle Rechte vorbehalten.