C# - Checando Null de uma forma mais elegante e concisa


  Se você ainda esta usando instruções if para checar se um objeto é null então precisa ler este artigo.

Se você ainda usa uma estrutura if/then para verificar se um objeto é null saiba que pode melhorar o seu código e ganhar tempo.

Em um passado cada vez mais distante, você tinha que usar uma estrutura if/then para verificar se um objeto era null usando um código parecido com este:

  if (valor != null)
  {
     valor.Trim().ToUpper();
     ...
  }

Mas a partir da versão 6.0 da linguagem C#  você esta livre desse código.

A partir desta versão podemos usar o símbolo “?” , conhecido como “null-conditional operator” ou elvis operator para os íntimos, para verificar referências nulas.

Isso te livra das instruções condicionais e o seu código fica mais enxuto e fácil de entender e manter.

Veja como fica o código acima usando o elvis operador (?.):

  
     valor?.Trim().ToUpper();
  

Essa sintaxe determina se valor é nulo; se assim for, os métodos Trim e ToUpper não serão invocados e você não lançará a famigerada exceção NullReferenceException.

Se valor não for nulo, os métodos Trim e ToUpper serão invocados.

O elvis operator (?.) também pode ser empregado para testar cada objeto para null quando o operador de ponto é usado para encadear uma série de acessos a membros de objetos:

  
     Pessoa?.Endereco?.Estado?.Trim().ToUpper();   
  

Nesse caso, se qualquer um dos três primeiros objetos (Pessoa, Endereco ou Estado) for nulo, o
operador ponto não é invocado para esse objeto nulo e a execução da expressão cessa.

Assim este operador te permite acessar membros e elementos apenas quando o receptor for não null, caso contrário irá retornar o resultado null.

Veja isso atuando nos exemplos abaixo:

 
    int? tamanho = pessoa?.Length;     // se pessoa for null retorna null

 

O código acima seria equivalente ao código abaixo usando a abordagem clássica:


    int? tamanho = (pessoa != null) ? (int?)pessoa.Length : null;

 

Bem melhor, não é mesmo ???

Então atualize-se e crie um código mais enxuto.

(Disse Jesus) - "Então aparecerá no céu o sinal do Filho do homem; e todas as tribos da terra se lamentarão, e verão o Filho do homem, vindo sobre as nuvens do céu, com poder e grande glória."
Mateus 24:30

Veja os Destaques e novidades do SUPER DVD Visual Basic (sempre atualizado) : clique e confira !

Quer migrar para o VB .NET ?

Quer aprender C# ??

Quer aprender os conceitos da Programação Orientada a objetos ?

Quer aprender o gerar relatórios com o ReportViewer no VS 2013 ?

Referências:


José Carlos Macoratti