O operador ?? presente em C# verifica se um valor(nullable), primitivo ou definido pelo
usuário(Objeto), é não-nulo. Caso a verificação seja verdadeira(true) o valor validado é
retornado, caso contrário, um outro valor definido é retornado.
Sintaxe
valor_nullable ?? valor_retorno
Esse operador ?? substitui o trecho de código(if ou ?:) abaixo, reduzindo assim o número de
linhas para a atribuição e validação.
Exemplo 9: sem ??
using System;
class HelloWorld
{
static void Main()
{
int? codigo = null;
int a = 0;
//sem uso de ??
if(codigo != null)
{
a = codigo;
}
else
{
a = -1;
}
Console.WriteLine("{0}",a);
}
}
Saída
-1
Com o uso do operador ??, podemos escrever o mesmo trecho de código(if) de forma mais resumida:
Exemplo 10: com ??
using System;
class HelloWorld
{
static void Main()
{
int? codigo = null;
int a = codigo ?? -1;
Console.WriteLine("{0}",a);
}
}
Saída
-1