L'operatore ?. permette da anni di leggere un membro solo se l'oggetto non è null. Con C# 14 si può usare anche per assegnare: l'assegnazione avviene solo se l'oggetto esiste.
Un esempio
// Prima
if (customer is not null)
{
customer.LastOrder = order;
}
// Con C# 14
customer?.LastOrder = order;
Se customer è null, l'espressione a destra non viene valutata. È un dettaglio importante: se a destra c'è una chiamata costosa o con effetti collaterali, non verrà eseguita inutilmente.
Funziona anche con indici e operatori composti
settings?["theme"] = "dark";
counters?.Total += 1;
Sono ammessi gli operatori di assegnazione composta come += e -=; non sono invece ammessi incremento e decremento (++ e --).
Quando usarla
- Per aggiornare oggetti facoltativi, come un contesto o una configurazione che può mancare.
- Nei gestori di eventi e nei callback, dove l'oggetto potrebbe essere già stato rilasciato.
Non sostituisce una buona progettazione dei tipi: se un valore non dovrebbe mai essere null, è meglio dichiararlo non nullable e lasciare che il compilatore ti aiuti.
Commenti (0)
Nessun commento ancora.