C# 6 ha introdotto il null conditional operator, detto anche Elvis operator. Tramite il carattere "?" abbiamo potuto scrivere espressioni di controllo senza doverci preoccupare se la variabile contenesse null o l'istanza di un oggetto. Ad esempio abbiamo potuto scrivere cose tipo la seguente.
private void Methdod(MyObj instance)
{
if (instance?.prop?.Value >= 0)
{
throw new Exception();
}
}In questo caso, se instance o la sua proprietà prop sono null, non otteniamo nessun errore a runtime e l'espressione torna null.
Un limite di questo operatore sino alla versione 13 è che il suo fnzionamento è in sola lettura ovvero non si può assegnare un vaore a Value. Dalla versione 14 è invece possibile usarlo anche in scrittura delle variabili. Riprendendo l'esempio precedente, adesso possiamo scrivere il seguente codice.
instance?.prop?.Value = 10;
Il risultato è che se instance e prop sono valorizzate, allora verrà assegnato il valore 10 a value, altrimenti l'istruzione verrà semplicemente ignorata.
Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
Approfondimenti
Mischiare codice server side e client side in una query LINQ con Entity Framework
Evitare memory leaks nelle closure JavaScript
Utilizzare le librerie native di .NET per decomprimere un file zip
Ottimizzare la content-visibility in CSS specificando lo spazio da occupato dall'area non renderizzata
Rendere affidabile lo scale out su Azure App Service
Usare il metodo nameof con un tipo generico in C# 14
Utilizzare i command service nei test con .NET Aspire
Ciclo di vita risorse con .NET Aspire
Integrare modelli AI in un workflow di GitHub
Filtrare i dati in ASP.NET Core usando OpenTelemetry su Azure Monitor
Operazioni tra insiemi di array in Javascript
Semplificare la gestione dei modelli con Azure AI Foundry Model Router


