Cos'è l'operatore Null Coalescing in C#

Cos E L Operatore Null Coalescing In C



C# è un linguaggio di programmazione ampiamente utilizzato progettato per creare applicazioni efficienti e robuste per varie piattaforme. Il linguaggio ha molte funzionalità avanzate, tra cui il operatore di coalescenza nullo , che consente di semplificare il codice complesso fornendo una sintassi compatta per gestire i valori Null. Questo operatore è diventato popolare tra gli sviluppatori alla ricerca di un metodo semplice da gestire nullo valori nei loro progetti.

Questo articolo entrerà in dettaglio sul operatore di coalescenza nullo .







Che cos'è un operatore di coalescenza null in C#

In C#, il simbolo per il operatore di coalescenza nullo È ?? . Se una variabile è nulla, viene utilizzata per assegnarle un valore predefinito.



Ad esempio, se abbiamo una variabile X che può essere nullo e vogliamo assegnargli un valore predefinito di 10 se è nullo, possiamo usare il operatore di coalescenza nullo come segue:



int y = x ?? 10





Questa istruzione assegnerà il valore di 10 a y se x è nullo, altrimenti assumerà il valore di x.

Restituirà il valore dell'operando sinistro se non è nullo. L'operando di mano destra viene esaminato e il risultato viene restituito se è nullo. In alternativa, se l'operando di sinistra restituisce un valore diverso da null, non valuta l'operando di destra.



Il modo tradizionale di scrivere il codice senza il operatore di coalescenza nullo È:

Se ( risultato è nullo )

ritorno nuovo Elenco < Persona > ( ) ;

ritorno risultato;

Possiamo condensare questo in una singola riga che contiene sia il valore predefinito non nullo che il controllo nullo utilizzando il operatore di coalescenza nullo :

ritorno risultato ?? nuovo Elenco < Persona > ( ) ;

Alcuni punti importanti da ricordare operatore di coalescenza nullo Sono:

  • Una variabile deve essere l'operando di sinistra di ?? operatore.
  • L'operando di sinistra dell'operatore ??= non può essere un tipo non nullable.
  • Non è possibile eseguire l'overload dell'operatore di unione dei valori null.
  • L'operatore di unione null è associativo a destra. Ciò significa che un'espressione come a ??= b ??= c verrà valutata come a ??= (b ??= c).

Usi dell'operatore di coalescenza nullo

Gli usi del operatore di coalescenza nullo Sono:

1: fornire valori predefiniti

Quando si lavora con tipi nullable, se il valore è null, è possibile utilizzare il operatore di coalescenza nullo per fornire un valore predefinito invece di generare un'eccezione.

utilizzando il sistema;

Programma di classe pubblica
{
vuoto statico pubblico principale ( )
{
int? nullableValue = null;
int valore = nullableValue ?? 10 ;
Console.WriteLine ( 'Il valore è: ' + valore ) ;
}
}

Nell'esempio sopra, definiamo il numero intero nullableValue variabile e assegnarle un valore pari a zero. IL operatore di coalescenza nullo viene quindi utilizzato per fornire alla variabile value un valore predefinito di 10 se nullableValue è null. Successivamente, il valore viene visualizzato sulla console.

2: evitare eccezioni di riferimenti nulli

I valori nulli potrebbero causare eccezioni di riferimento null quando si lavora con strutture di dati sofisticate come oggetti e matrici. Queste eccezioni possono essere evitate utilizzando il operatore di coalescenza nullo , che fornisce i valori predefiniti.

utilizzando il sistema;

classe pubblica miaClasse
{
stringa pubblica Nome { Ottenere; impostato ; }
ID pubblico int { Ottenere; impostato ; }
}
Programma di classe pubblica
{
vuoto statico pubblico principale ( )
{
myClass persona = null;
stringa nome = persona?.Nome ?? 'Sconosciuto' ;
int id = persona?.ID ?? 0 ;
Console.WriteLine ( 'Nome: ' + nome ) ;
Console.WriteLine ( 'ID: ' + id ) ;
}
}

Nome E ID sono attributi del la mia classe class nel codice sopra. Per accedere in sicurezza al Nome E ID proprietà dell'oggetto persona e fornisce valori predefiniti se sono nulli, imposta una variabile persona su null e quindi utilizza l'operatore condizionale nullo (?.) e il operatore di coalescenza nullo (??). Quindi, la console viene stampata con i valori name e id.

3: Rimozione delle condizioni if-else ridondanti

Puoi anche utilizzare l'operatore di coalescenza null per rendere il tuo codice più conciso e leggibile eliminando la necessità di ridondanti condizioni if-else .

Per esempio:

utilizzando il sistema;

spazio dei nomi Esempio
{
classe miaClasse
{
vuoto statico principale ( corda [ ] arg )
{
int? nullableValue = null;
valore intero;
Se ( nullableValue ! = nullo )
{
valore = nullableValue.Value;
}
altro
{
valore = 10 ;
}
Console.WriteLine ( 'Il valore è: ' + valore ) ;
}
}
}

Nel codice precedente, l'operatore di coalescenza null ?? viene utilizzato per assegnare il valore di nullableValue valorizzare. Se nullableValue non è nullo, il valore avrà lo stesso valore di nullableValue . Se nullableValue è nullo, allora il valore avrà il valore di 10. Il se altro condizione non è più richiesta e il codice è ora più breve e più facile da comprendere.

Conclusione

IL operatore di coalescenza nullo in C# è una potente funzionalità che semplifica il modo in cui gli sviluppatori gestiscono i valori null nei propri progetti. Questo operatore fornisce una sintassi compatta, efficiente e flessibile per assegnare valori predefiniti a variabili che possono essere nulle. Utilizzando il operatore di coalescenza nullo , gli sviluppatori possono scrivere codice più leggibile, gestibile ed efficiente, risparmiando tempo e fatica nel processo di sviluppo.