Operador ?? – C#

0

Hoje vamos aprender sobre um operador bastante peculiar que o C# possui, é o Operador ??

?? operador

O operador ?? é chamado de operador união ou coalescing .

Sua definição seguinte a Miscrosoft é :

Retorna o operando esquerdo se o operando não for nula; caso nulo retorna o seguinte.

Bom, não entendi nada!

Um tipo que permite valor nulo pode representar um valor de domínio do tipo, ou o valor pode ser indefinido (neste caso o valor é nulo). Você pode usar a expressividade sintática do operador ?? para retornar um valor apropriado quando o operando da esquerda tiver um tipo nullable cujo valor é nulo.
Se você tentar atribuir um tipo de valor que permite valor nulo em um tipo de valor não nulo sem usar o operador de ?? , você irá gerar um erro de tempo de compilação. Se você usar uma conversão, e o tipo de valor que permite valor nulo é atualmente indefinido, a exceção de InvalidOperationException será gerada.

Deu pra entender melhor?

Bom resumidamente o que ele faz é : Substituir o valor de uma variável nula ou o retorno da mesma, sem gerar nenhuma exceção.

Vamos à um exemplo prático:

class NullCoalesce
{
    static int? GetValorNuloInt()
    {
        return null;
    }

    static string GerValorNuloString()
    {
        return null;
    }

    static void Main()
    {
        int? x = null;

         // Set y para o valor de x, se x não é nulo; caso contrário,
         // Se x = null, definir y a -1.
        int y = x ?? -1;

       
         // Atribui i para o valor do método retornar se o resultado do método não é nulo
         // caso contrário, se o resultado é nulo, definir i para o valor 
         // default de int.
        int i = GetNullableInt() ?? default(int);

        string s = GetStringValue();
         // Mostra o valor de s, se s não é nulo; caso contrário,
         // Exibe a string "não especificado".
        Console.WriteLine(s ?? "não especificado");
    }
}

Viu que interessante estes exemplos?

Você pode trabalhar com ele de diferentes maneiras, sem precisar validar se a variável é nula ou coisa do tipo.

Artigo Original : MSDN

Nossa página no Facebook está a todo vapor, faça-nos uma visita! 🙂

Um abraço!

Compartilhe.

Sobre o autor

Criador do blog Código Simples e com mais 9 anos de experiência em TI, com títulos de MVP Microsoft na área de Visual Studio Development, Neo4j Top 50 Certificate, Scrum Master e MongoDB Evangelist. Atuando em funções analista, desenvolvedor, arquiteto, líder técnico e gestor de equipes. Mais informações em : http://jhonathansoares.com