Künstliche Intelligenz
Neu in .NET 10.0 [9]: Null-Conditional Assignment in C# 14.0
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.
Weiterlesen nach der Anzeige
Dr. Holger Schwichtenberg ist technischer Leiter des Expertennetzwerks www.IT-Visions.de, das mit 53 renommierten Experten zahlreiche mittlere und große Unternehmen durch Beratungen und Schulungen sowie bei der Softwareentwicklung unterstützt. Durch seine Auftritte auf zahlreichen nationalen und internationalen Fachkonferenzen sowie mehr als 90 Fachbücher und mehr als 1500 Fachartikel gehört Holger Schwichtenberg zu den bekanntesten Experten für .NET und Webtechniken in Deutschland.
Anstelle von
if (meineWebsite != null)
{
meineWebsite.Url = "
meineWebsite.Url = meineWebsite.Url.ToLower();
meineWebsite.Counter += 1;
}
darf man nun verkürzt mit dem Fragezeichen vor dem Punkt (?.) ohne if schreiben:
meineWebsite?.Url = "
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.
Weiterlesen nach der Anzeige
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 = "
(rme)