Condividi tramite


?? Operatore (Riferimenti per C#)

L'operatore ?? viene chiamato operatore null-coalescing. Restituisce l'operando sinistro se non è Null. In caso contrario, restituisce l'operando destro.

Note

Un tipo nullable può rappresentare un valore dal dominio del tipo oppure il valore può essere indefinito, nel qual caso è Null. È possibile utilizzare l'espressività sintattica dell'operatore ?? per restituire un valore appropriato (l'operando destro) quando l'operando sinistro è un tipo nullable il cui valore è Null. Se si tenta di assegnare un tipo di 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 di 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()
    {
        int? x = null;

        // Set y to the value of x if x is NOT null; otherwise, 
        // if x = null, set y to -1. 
        int y = x ?? -1;

        // Assign i to return value of the method if the method's result 
        // is NOT null; otherwise, if the result is null, set i to the 
        // default value of int. 
        int i = GetNullableInt() ?? default(int);

        string s = GetStringValue();
        // Display the value of s if s is NOT null; otherwise,  
        // display the string "Unspecified".
        Console.WriteLine(s ?? "Unspecified");
    }
}

Vedere anche

Riferimenti

Operatori [C#]

Tipi nullable (Guida per programmatori C#)

Concetti

Guida per programmatori C#

Altre risorse

Riferimenti per C#

Cosa significa esattamente "elevato"?