C # é uma linguagem de programação amplamente utilizada, projetada para criar aplicativos eficientes e robustos para várias plataformas. A linguagem tem muitos recursos avançados, incluindo o operador de coalescência nula , que ajuda a simplificar o código complexo fornecendo uma sintaxe compacta para lidar com valores nulos. Este operador tornou-se popular entre os desenvolvedores que procuram um método direto para lidar com nulo valores em seus projetos.
Este artigo entrará em detalhes sobre o operador de coalescência nula .
O que é um operador de coalescência nula em C#
Em C#, o símbolo para o operador de coalescência nula é ?? . Se uma variável for nula, ela será usada para fornecer um valor padrão.
Por exemplo, se tivermos uma variável x que pode ser nulo e queremos atribuir um valor padrão de 10 se for nulo, podemos usar o operador de coalescência nula do seguinte modo:
int y = x ?? 10
Esta instrução atribuirá o valor de 10 para y se x for nulo, caso contrário, assumirá o valor de x.
Ele retornará o valor do operando esquerdo se não for nulo. O operando destro é examinado e o resultado é retornado se for nulo. Como alternativa, se o operando esquerdo for avaliado como não nulo, ele não avaliará seu operando direito.
A maneira tradicional de escrever o código sem o operador de coalescência nula é:
se ( resultado é nulo )retornar nova lista < Pessoa > ( ) ;
retornar resultado;
Podemos condensar isso em uma única linha que contém o valor padrão não nulo e a verificação nula usando o método operador de coalescência nula :
retornar resultado?? nova lista < Pessoa > ( ) ;
Alguns pontos importantes a serem lembrados operador de coalescência nula são:
- Uma variável deve ser o operando esquerdo do ?? operador.
- O operando esquerdo do operador ??= não pode ser um tipo não anulável.
- O operador de união nula não pode ser sobrecarregado.
- O operador de coalescência nula é associativo à direita. Isso significa que uma expressão como a ??= b ??= c será avaliada como ??= (b ??= c).
Usos do operador de coalescência nula
Os usos do operador de coalescência nula são:
- Fornecimento de valores padrão
- Evitando exceções de referência nula
- Removendo condições if-else redundantes
1: Fornecimento de valores padrão
Ao trabalhar com tipos anuláveis, se o valor for nulo, você pode usar o operador de coalescência nula para fornecer um valor padrão em vez de lançar uma exceção.
usando Sistema;Programa de classe pública
{
public static void Principal ( )
{
int? nullableValue = null;
valor int = nullableValue ?? 10 ;
Console.WriteLine ( 'O valor é: ' + valor ) ;
}
}
No exemplo acima, definimos o inteiro nullableValue variável e dar-lhe um valor de zero. O operador de coalescência nula é usado para fornecer à variável de valor um valor padrão de 10 se nullableValue for nulo. Em seguida, o valor é exibido no console.
2: Evitando exceções de referência nula
Valores nulos podem resultar em exceções de referência nula ao trabalhar com estruturas de dados sofisticadas, como objetos e matrizes. Essas exceções podem ser evitadas usando o operador de coalescência nula , que fornece valores padrão.
usando Sistema;classe pública minhaClasse
{
nome da string pública { pegar; definir ; }
ID int público { pegar; definir ; }
}
Programa de classe pública
{
public static void Principal ( )
{
minhaClasse pessoa = null;
string nome = pessoa?.Nome ?? 'Desconhecido' ;
int eu ia = pessoa?.ID ?? 0 ;
Console.WriteLine ( 'Nome: ' + nome ) ;
Console.WriteLine ( 'EU IA: ' + eu ia ) ;
}
}
Nome e EU IA são atributos do minha classe classe no código acima. Para acessar com segurança o Nome e EU IA propriedades do objeto pessoa e fornecer valores padrão se forem nulos, ele define uma variável de pessoa como nula e, em seguida, utiliza o operador condicional nulo (?.) e o operador de coalescência nula (??). Em seguida, o console é impresso com os valores de nome e id.
3: Removendo condições redundantes if-else
Você também pode usar o operador de coalescência nula para tornar seu código mais conciso e legível, removendo a necessidade de redundância condições if-else .
Por exemplo:
usando Sistema;exemplo de namespace
{
classe minhaclasse
{
vazio estático Principal ( corda [ ] argumentos )
{
int? nullableValue = null;
valor int;
se ( nullableValue ! = nulo )
{
valor = nullableValue.Value;
}
outro
{
valor = 10 ;
}
Console.WriteLine ( 'O valor é: ' + valor ) ;
}
}
}
No código acima, o operador de coalescência nula ?? é usado para atribuir o valor de nullableValue dar valor. Se nullableValue não é nulo, então o valor terá o mesmo valor que nullableValue . Se nullableValue é nulo, então o valor terá o valor de 10. O if-else condição não é mais necessária e o código agora é mais curto e fácil de compreender.
Conclusão
O operador de coalescência nula em C# é um recurso poderoso que simplifica a maneira como os desenvolvedores lidam com valores nulos em seus projetos. Esse operador fornece uma sintaxe compacta, eficiente e flexível para atribuir valores padrão a variáveis que podem ser nulas. Usando o operador de coalescência nula , os desenvolvedores podem escrever um código mais legível, sustentável e eficiente, economizando tempo e esforço no processo de desenvolvimento.