(Questo è un duplicato, ma è difficile per cercare, quindi sono abbastanza felice di fornire più un altro obiettivo per le ricerche future ...)
E 'il null-coalescing operator. In sostanza valuta il primo operando e se il risultato è nullo (un riferimento nullo o un valore nullo per un tipo di valore nullable), valuta il secondo operando. Il risultato è qualsiasi altro operando è stato valutato per ultimo, in modo efficace.
Si noti che a causa della sua associatività, è possibile scrivere:
int? x = E1 ?? E2 ?? E3 ?? E4;
se E1
, E2
, E3
e E4
sono tutte espressioni di tipo int?
- si inizierà con E1
e progresso finché non trova un non- valore nullo.
Il primo operando deve essere un tipo annullabile, ma un secondo operando può essere non annullabile, nel qual caso il tipo di espressione generale non è annullabile. Ad esempio, supponiamo E4 è un'espressione di tipo int
(ma tutto il resto sta ancora int?
allora si può fare x
non annullabile:
int x = E1 ?? E2 ?? E3 ?? E4;
fonte
2010-10-05 09:23:19
'' ?? in quanto tale, potrebbe essere difficile per cercare, ma la ricerca di "Sintassi C#" o "Operatori C#" abbastanza rapidamente ti porta alle risposte: –