Neu in .NET 10.0 [7]: Semi-Auto Properties in C# 14.0
Die Semi-Auto Properties, die es in C# 13.0 schon experimentell gab, sind in C# 14 ein stabiles Feature.
(Bild: Pincasso/Shutterstock)
- Dr. Holger Schwichtenberg
Im Dokument „What’s new in C# 14“ beschreibt Microsoft das Schlüsselwort field, mit dem man sogenannte Semi-Auto Properties erstellen kann.
Dieses Sprachfeature gibt es allerdings bereits in der stabilen Version von .NET 9.0 – darin aber im Status „Preview“. Das heißt, dass man dafür <LangVersion>preview</LangVersion> setzen musste. Die Erwähnung in „What’s new in C# 14“ legt die Vermutung nahe, dass das Sprachfeature in C# 14.0 schließlich als stabil gelten wird.
Folgender Code zeigt eine Semi-Auto Property mit dem Schlüsselwort field, das automatisch ein Field für die Property anlegt:
/// <summary>
/// Semi-Auto Property
/// </summary>
public int ID
{
get;
set // init wäre hier auch erlaubt!
{
if (value < 0) throw new ArgumentOutOfRangeException();
if (field > 0) throw new ApplicationException("ID schon gesetzt");
field = value;
}
} = -1;
Videos by heise
Falls es in (älterem) Programmcode bereits ein Datenmitglied mit Namen field gibt, warnt der Compiler, dass dieses nun nicht mehr verwendet wird. Das stellt gegebenenfalls einen Breaking Change dar, wenn beispielsweise eine Serialisierung für das Datenmitglied field existiert. Entwicklerinnen und Entwickler können aber die Verwendung des alten Datenmitglieds erzwingen, indem sie @field oder this.field im Programmcode schreiben.
(rme)