Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
dem
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 Eigenschaftenund Indexer.
Für einfache Fälle, in denen die Accessoren und get Eigenschaften einer Eigenschaft set keinen anderen Vorgang ausführen als das Festlegen oder Abrufen eines Werts in einem privaten Sicherungsfeld, können Sie die Unterstützung des C#-Compilers für automatisch implementierte Eigenschaften nutzen. Im folgenden Beispiel wird eine automatisch implementierte Hours Eigenschaft implementiert.
class TimePeriod3
{
public double Hours { get; set; }
}
Wichtig
Automatisch implementierte Eigenschaften sind für Schnittstelleneigenschaftsdeklarationen oder die Implementierungsdeklaration für eine partielle Eigenschaft nicht zulässig. Der Compiler interpretiert die Syntax, die einer automatisch implementierten Eigenschaft entspricht, als deklarierende Deklaration, nicht als implementierende Deklaration.
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;
}
}
Möglicherweise stellen Sie fest, dass Sie einen der Accessor-Gremien implementieren müssen. Sie können eine feldgesicherte Eigenschaft verwenden, damit der Compiler einen Accessor generieren kann, während Sie die andere manuell schreiben. Sie verwenden das field Schlüsselwort, das in C# 14 hinzugefügt wurde, um auf das compilersynthetisierte Sicherungsfeld zuzugreifen:
class TimePeriod4
{
public double Hours {
get;
set => field = (value >= 0)
? value
: throw new ArgumentOutOfRangeException(nameof(value), "The value must not be negative");
}
}
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;
}
}
}
C#-Programmiersprachenspezifikation
Weitere Informationen erhalten Sie unter C#-Sprachspezifikation. Die Sprachspezifikation ist die verbindliche Quelle für die Syntax und Verwendung von C#.