This article has been localized into Portuguese by the community.
Operador de coalescência nula
O operador ?? também é chamado de "operador de coalescência nula" porque permite que você verifique se há um valor nulo e atribuir um valor substituto em uma linha de código. Fazer isso sem este operador pode parecer simples, mas considere o seguinte exemplo:
string userSuppliedName = null;
if (userSuppliedName == null)
Console.WriteLine("Hello, Anonymous!");
else
Console.WriteLine("Hello," + userSuppliedName);
Você deve pensar na variável userSuppliedName como algo que vem do usuário, por exemplo, de um diálogo ou arquivo de dados - algo que poderia resultar no valor NULL. Devemos lidar com isso verificando o valor antes de usá-lo, neste caso, para exibir o nome para o usuário.
No exemplo acima, usamos a abordagem clássica if-else, mas com o operador coalescente de nulos, podemos fazer isso muito mais curto, em uma única linha:
Console.WriteLine("Hello, " + (userSuppliedName ?? "Anonymous"));
Em uma única instrução, pedimos ao interpretador para usar a variável userSuppliedName se ela tiver um valor - se não, nós fornecemos um valor de fallback, neste caso o nome "Anonymous". Curto e simples!
Resumo
Como acontece com todo o "açúcar sintático", como o operador de coalescência nula, é sempre um compromisso entre manter o código curto e legível. Alguns acham que esses operadores dificultam a leitura e a navegação no código, enquanto outros adoram o quão simples e curto ele é. No final, tudo depende de você!