Freigeben über


Automatisch implementierte Eigenschaften (C#-Programmierhandbuch)

In C# 3.0 und höher werden automatisch implementierte Eigenschaften durch Eigenschaftsdeklarationen präzisiert, wenn in den get- und set-Accessoren der Eigenschaft keine zusätzliche Logik erforderlich ist. Sie aktivieren auch Clientcode, um Objekte zu erstellen. Wenn Sie eine Eigenschaft wie im folgenden Beispiel gezeigt deklarieren, erstellt der Compiler ein privates, anonymes dahinter liegendes Feld, das nur durch die get- und set-Accessoren der Eigenschaft aufgerufen werden kann.

Beispiel

Im folgenden Beispiel ist eine einfache Klasse dargestellt, die über einige automatisch implementierte Eigenschaften verfügt:


// This class is mutable. Its data can be modified from
// outside the class.
class Customer
{
    // Auto-Impl Properties for trivial get and set
    public double TotalPurchases { get; set; }
    public string Name { get; set; }
    public int CustomerID { get; set; }

    // Constructor
    public Customer(double purchases, string name, int ID)
    {
        TotalPurchases = purchases;
        Name = name;
        CustomerID = ID;
    }
    // Methods
    public string GetContactInfo() {return "ContactInfo";}
    public string GetTransactionHistory() {return "History";}

    // .. Additional methods, events, etc.
}

class Program
{
    static void Main()
    {
        // Intialize a new object.
        Customer cust1 = new Customer ( 4987.63, "Northwind",90108 );

        //Modify a property
        cust1.TotalPurchases += 499.99;
    }
}

Die Klasse aus dem vorherigen Beispiel kann geändert werden. Clientcode kann die Werte in Objekten nach dem Erstellen ändern. In komplexen Klassen mit signifikantem Verhalten (Methoden) und Daten werden häufig öffentliche Eigenschaften benötigt. Bei kleinen Klassen oder Strukturen, die nur einen Satz von Werten (Daten) kapseln und ein begrenztes oder kein Verhalten aufweisen, wird jedoch empfohlen, die Objekte durch Deklarieren des set-Accessors als privat unveränderlich zu machen. Weitere Informationen finden Sie unter Gewusst wie: Implementieren einer einfachen Klasse mit automatisch implementierten Eigenschaften (C#-Programmierhandbuch).

Attribute sind für automatisch implementierte Eigenschaften zulässig, jedoch nicht für die dahinter liegenden Felder, da der Quellcode nicht auf diese Felder zugreifen kann. Wenn Sie ein Attribut für das dahinter liegende Feld einer Eigenschaft verwenden müssen, erstellen Sie eine reguläre Eigenschaft.

Siehe auch

Referenz

Eigenschaften (C#-Programmierhandbuch)

Modifizierer (C#-Referenz)