« Voltar
em .net c#

Pra que serve o operador "??" no C#?.

Lendo o código de um projeto hoje, me deparei com o seguinte trecho de código:

Produto novoProduto = produtoAntigo ?? new Produto();  

E, sinceramente, não sabia pra que servia esses dois "??" aí. Fui então pesquisar que esse cara é um tal de null-coalescing operator.

O que ele faz nesse trecho de código basicamente é verificar se a variável produtoAntigo é nula. Se não for, ele atribui o valor dela à variável novoProduto. Se for, atribui à variável novoProduto uma nova instância de Produto(new Produto()).

Ou seja, se o que estiver do lado esquerdo do operador ?? não for nulo, atribui ele para variável em questão. Se for, atribui o valor da direita.

No fim das contas, é só uma forma mais curta de se fazer um if ternário.
O código acima é a mesma coisa que esse:

Produto novoProduto = produtoAntigo != null ? produtoAntigo : new Produto();  

Que é a mesma coisa que:

if(produtoAntigo != null)  
{
    Produto novoProduto =  produtoAntigo;
}
else  
{ 
    Produto novoProduto = new Produto();
}

Mas vamos combinar que a primeira forma é bem mais simples né? (:


Quer ganhar 15% de desconto pra gastar na Casa do Código e ainda ficar em dia com as minhas postagem e outras promoções e sorteios legais? Assina minha newsletter: http://gabsferreira.com/newsletter/ (:

Se quiser, curta minha página no Face também! O endereço é https://www.facebook.com/devgabsferreira

comments powered by Disqus