?? Operador (translation from VPE for Csharp Reference)
The ?? operador é chamada de operador concentração nulo e é usado para definir um valor padrão para tipos de valor anulável, bem sistema autônomo tipos de referência. Retorna o operando esquerdo se não for nula; caso contrário ela retorna o operando da direita.
Comentários
Um tipo que permite valor nulo pode conter um valor ou pode ser indefinido.The ?? operador define o valor padrão a ser retornada quando um tipo que permite valor nulo é atribuído a um tipo não anulável. Se você tentar atribuir um tipo de valor nulo a um tipo de valor não nulo sem usar o ?? operador, você gerará um erro de time de compilar. Se você usar a projeção e o tipo de valor nulo é indefinido no momento, um InvalidOperationException exceção será lançada.
Para obter mais informações, consulte Tipos anuláveis (guia de programação C#).
O resultado de um??operador é considerado não ser uma constante, mesmo que ambos os argumentos são constantes.
Exemplo
class NullCoalesce
{
static int? GetNullableInt()
{
return null;
}
static string GetStringValue()
{
return null;
}
static void Main()
{
// ?? operator example.
int? x = null;
// y = x, unless x is null, in which case y = -1.
int y = x ?? -1;
// Assign i to return value of method, unless
// return value is null, in which case assign
// default value of int to i.
int i = GetNullableInt() ?? default(int);
string s = GetStringValue();
// ?? also works with reference types.
// Display contents of s, unless s is null,
// in which case display "Unspecified".
Console.WriteLine(s ?? "Unspecified");
}
}
Consulte também
Conceitos
Referência
Tipos anuláveis (guia de programação C#)