Das Set-Schlüsselwort (C#-Referenz)
Das Schlüsselwort set
definiert eine Accessor-Methode in einer Eigenschaft oder einem Indexer, die der Eigenschaft oder dem Indexer-Element einen Wert zuweist. Weitere Informationen und Beispiele finden Sie unter "Eigenschaften", "Automatisch implementierte Eigenschaften" und "Indexer".
In einfachen Fällen, in denen die Accessoren und set
Eigenschaften einer Eigenschaft get
keinen anderen Vorgang ausführen als das Festlegen oder Abrufen eines Werts in einem privaten Sicherungsfeld, können Sie automatisch implementierte Eigenschaften verwenden. 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.
Möglicherweise stellen Sie fest, dass Sie einen der Accessor-Gremien implementieren müssen. Das field
Schlüsselwort, das als Vorschaufeature in C# 13 hinzugefügt wird, deklariert eine feldbasierte Eigenschaft. 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, 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");
}
}
Wichtig
Das field
Schlüsselwort ist ein Vorschaufeature in C# 13. Sie müssen .NET 9 verwenden und das <LangVersion>
Element preview
in Der Projektdatei festlegen, um das field
Kontextschlüsselwort zu verwenden.
Achten Sie darauf, die field
Schlüsselwortfunktion in einer Klasse zu verwenden, die ein Feld mit dem Namen field
hat. Das neue field
Schlüsselwort schattiert ein Feld, das im Bereich eines Eigenschaftenaccessors benannt field
ist. Sie können entweder den Namen der field
Variablen ändern oder das @
Token verwenden, um auf den field
Bezeichner zu verweisen als @field
. Weitere Informationen erhalten Sie, indem Sie die Featurespezifikation für das field
Schlüsselwort lesen.
Der set
-Accessor besteht häufig aus einer einzelnen Anweisung, die einen Wert zurückgibt (wie im vorherigen Beispiel gezeigt). Sie können die set
-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;
}
}
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#-Sprachspezifikation
Weitere Informationen erhalten Sie unter C#-Sprachspezifikation. Die Sprachspezifikation ist die verbindliche Quelle für die Syntax und Verwendung von C#.