Freigeben über


get (C#-Referenz)

Das Schlüsselwort get definiert eine Accessormethode in einer Eigenschaft oder einem Indexer, die den Eigenschaftswert oder das Indexer-Element zurückgibt. Weitere Informationen finden Sie unter Eigenschaften, Automatisch implementierte Eigenschaften und Indexer.

Im folgenden Beispiel werden ein get- und ein set-Accessor für eine Eigenschaft namens Seconds definiert. Im Beispiel wird ein privates Feld mit dem Namen _seconds verwendet, um den Eigenschaftswert zu unterstützen.

class TimePeriod
{
    private double _seconds;

    public double Seconds
    {
        get { return _seconds; }
        set
        {
            if (value < 0)
            {
                throw new ArgumentOutOfRangeException(nameof(value), "The value of the time period must be non-negative.");
            }
            _seconds = value;
        }
    }
}

Der get-Accessor besteht häufig aus einer einzelnen Anweisung, die einen Wert zurückgibt (wie im vorherigen Beispiel gezeigt). Sie können die get-Zugriffsmethode als Ausdruckskörpermember implementieren. Im folgenden Beispiel wird sowohl der get- als auch der set-Accessor als Ausdruckskörpermember implementiert.

class TimePeriod2
{
    private double _seconds;

    public double Seconds
    {
        get => _seconds;
        set => _seconds = value;
    }
}

In einfachen Fällen, in denen der get- und der set-Accessor einer Eigenschaft nichts anderes durchführen als das Festlegen oder Abrufen eines Wertes in einem privaten Unterstützungsfeld, können Sie die Vorteile der Unterstützung von automatisch implementierten Eigenschaften durch einen C#-Compiler nutzen. Im folgenden Beispiel wird Hours als automatisch implementierte Eigenschaft implementiert.

class TimePeriod3
{
    public double Hours { get; set; }
}

Wichtig

Automatisch implementierte Eigenschaften sind für Schnittstelleneigenschaftsdeklarationen oder partielle Eigenschaftendeklarationen nicht zulässig. In beiden Fällen interpretiert der Compiler die Syntax, die einer automatisch implementierten Eigenschaft entspricht, als deklarierende Deklaration, nicht als implementierende Deklaration.

C#-Programmiersprachenspezifikation

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

Siehe auch