Freigeben über


Eigenschaften (C#-Programmierhandbuch)

Aktualisiert: November 2007

Eigenschaften sind Member, die einen flexiblen Mechanismus zum Lesen, Schreiben oder Berechnen von Werten privater Felder zur Verfügung stellen. Eigenschaften können wie öffentliche Datenmember verwendet werden. Tatsächlich handelt es sich jedoch um spezielle Methoden, die als Accessoren bezeichnet werden. Damit kann problemlos auf Daten zugegriffen werden, während gleichzeitig die Sicherheit und die Flexibilität der Methoden optimiert werden.

In diesem Beispiel speichert die TimePeriod-Klasse einen Zeitraum. Intern speichert die Klasse die Zeit in Sekunden. Es wird eine Eigenschaft mit dem Namen Hours bereitgestellt, sodass ein Client die Zeit auch in Stunden angeben kann. Die Accessoren für die Hours-Eigenschaft führen die Konvertierung zwischen Stunden und Sekunden aus.

Beispiel

class TimePeriod
{
    private double seconds;

    public double Hours
    {
        get { return seconds / 3600; }
        set { seconds = value * 3600; }
    }
}


class Program
{
    static void Main()
    {
        TimePeriod t = new TimePeriod();

        // Assigning the Hours property causes the 'set' accessor to be called.
        t.Hours = 24;

        // Evaluating the Hours property causes the 'get' accessor to be called.
        System.Console.WriteLine("Time in hours: " + t.Hours);
    }
}
// Output: Time in hours: 24

Übersicht über Eigenschaften

  • Über die Eigenschaften kann eine Klasse das Abrufen und Festlegen von Werten öffentlich verfügbar machen, während Implementierungs- und Überprüfungscode ausgeblendet wird.

  • Mit dem get-Eigenschaftenaccessor wird der Wert einer Eigenschaft zurückgegeben, und mithilfe des set-Accessors kann ein neuer Wert zugewiesen werden. Diese Accessoren können verschiedene Zugriffsebenen haben. Weitere Informationen finden Sie unter Asymmetrischer Accessorzugriff (C#-Programmierhandbuch).

  • Mithilfe des value-Schlüsselworts wird der Wert definiert, der vom set-Indexer zugewiesen wird.

  • Eigenschaften, die keine set-Methode implementieren, sind schreibgeschützt.

  • Erwägen Sie die Verwendung automatisch implementierter Eigenschaften bei einfachen Eigenschaften, die keinen benutzerdefinierten Accessorcode erfordern. Weitere Informationen finden Sie unter Automatisch implementierte Eigenschaften (C#-Programmierhandbuch).

Verwandte Abschnitte

C#-Programmiersprachenspezifikation

Weitere Informationen finden Sie in den folgenden Abschnitten von C#-Programmiersprachenspezifikation:

  • 1.6.7.2 Eigenschaften

  • 10.2.9.1 Für Eigenschaften reservierte Membernamen

  • 10.7 Eigenschaften

Siehe auch

Konzepte

C#-Programmierhandbuch

Eigenschaftenentwurf

Referenz

Verwenden von Eigenschaften (C#-Programmierhandbuch)

Indexer (C#-Programmierhandbuch)