?? Operatore (Riferimenti per C#)
L'operatore di ?? viene chiamato l'operatore null-coalescing e viene utilizzato per definire un valore predefinito per i tipi o i tipi di riferimento di valore NULL.Restituisce l'operando di sinistra se l'operando non è null, in caso contrario restituisce la posizione di operando destro.
Note
Un tipo nullable può contenere un valore o non essere definito.L'operatore ?? definisce il valore predefinito da restituire quando un tipo nullable viene assegnato a un tipo che non nullable.Se si tenta di assegnare un tipo valore nullable a un tipo non nullable senza utilizzare l'operatore ??, verrà generato un errore in fase di compilazione.Se si utilizza un cast e il tipo valore nullable non è attualmente definito, verrà generata un'eccezione InvalidOperationException.
Per ulteriori informazioni, vedere Tipi nullable (Guida per programmatori C#).
Il risultato di un operatore ??non è considerato una costante anche se entrambi gli argomenti sono costanti.
Esempio
class NullCoalesce
{
static int? GetNullableInt()
{
return null;
}
static string GetStringValue()
{
return null;
}
static void Main()
{
// ?? operator example.
int? x = null;
// y = x, unless x is null, in which case y = -1.
int y = x ?? -1;
// Assign i to return value of method, unless
// return value is null, in which case assign
// default value of int to i.
int i = GetNullableInt() ?? default(int);
string s = GetStringValue();
// ?? also works with reference types.
// Display contents of s, unless s is null,
// in which case display "Unspecified".
Console.WriteLine(s ?? "Unspecified");
}
}
Vedere anche
Riferimenti
Tipi nullable (Guida per programmatori C#)