Neu in .NET 10.0 [9]: Null-Conditional Assignment in C# 14.0
Entwicklerinnen und Entwickler können nun eine Zuweisung an eine Eigenschaft vornehmen, ohne vorher zu prüfen, ob das Objekt null ist.
(Bild: Pincasso / Shutterstock.com)
- Dr. Holger Schwichtenberg
Neben den bisher in dieser Blogserie aufgeführten Sprachelementen gibt es ein weiteres sehr hilfreiches neues Sprachkonstrukt in C# 14.0, das Microsoft „Null-Conditional Assignment“ nennt. Damit können Entwicklerinnen und Entwickler eine Zuweisung an eine Eigenschaft vornehmen, ohne vorher zu prüfen, ob das Objekt null ist.
Anstelle von
if (meineWebsite != null)
{
meineWebsite.Url = "https://www.IT-Visions.de";
meineWebsite.Url = meineWebsite.Url.ToLower();
meineWebsite.Counter += 1;
}
darf man nun verkĂĽrzt mit dem Fragezeichen vor dem Punkt (?.) ohne if schreiben:
meineWebsite?.Url = "https://www.IT-Visions.de";
meineWebsite?.Url = meineWebsite.Url.ToLower();
meineWebsite?.Counter += 1;
Das fĂĽhrt zur Laufzeit zu keinem Fehler. Allerdings passiert auch rein gar nichts, falls die Variable meineWebsite den Wert null besitzt.
Die Variante
meineWebsite?.Owner.Name = "IT-Visions";
Console.WriteLine("Owner: " + meineWebsite?.Owner.Name);
funktioniert, wenn Website null ist. Aber nicht, wenn Website != null und Owner = null. Dann braucht man:
meineWebsite?.Owner?.Name = "IT-Visions";
Console.WriteLine("Owner: " + meineWebsite?.Owner?.Name);
Das Null-Conditional Assignment ist auch bei einem Indexer erlaubt:
Website[] websites = …;
websites?[0]?.Url = "https://www.IT-Visions.de";
(rme)