Compartilhar via


?? Operador (referência de C#)

O ?? operador denomina-se o operador de concentração de nulo e é usado para definir um valor padrão para tipos de valor anulável ou tipos de referência. Ele retorna o esquerdo operando se o operando não for nulo. Caso contrário, ele retornará o operando da direita.

Comentários

Um tipo que permite valor nulo pode conter um valor, ou pode ser indefinido.O ?? operador define o valor padrão a ser retornada quando um tipo que permite valor nulo é atribuído a um não-tipo que permite valor nulo. Se você tentar atribuir um tipo de valor anulável a um tipo de valor de não anuláveis sem usar o ??de operador, você irá gerar um compilar- errode tempo. Se você usar a projeção e o tipo de valor anulável está atualmente indefinido, um InvalidOperationException exceção será lançada.

Para mais informações, consulte Tipos anuláveis (guia de programação do C#).

O resultado de um??operador não é considerado para ser uma constante, mesmo que ambos os seus argumentos são constantes.

Exemplo

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");
    }
}

Consulte também

Referência

Operadores de C#

Tipos anuláveis (guia de programação do C#)

Conceitos

Guia de programação do C#

Outros recursos

Referência de C#

O que exatamente oferece 'Levantada' significa?