« 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 ficar em dia com os meus posts e novidades? Se inscreva na minha newsletter, me segue no Twitter e na minha página!

comments powered by Disqus