quarta-feira, 14 de setembro de 2016

C# 6.0 - Propagação de NULL

Antes do C# 6.0, para evitar as tão temidas NullReferenceException, era comum esse tipo de código:


Veja que estamos verificando se o parâmetro cliente é diferente de null, antes de verificar o Limite de Crédito. Isso é necessário porque se o parâmetro for null, teremos uma exceção do tipo NullReferenceException ao tentar acessar a propriedade LimiteCredito.

Com o C# 6.0 temos o recurso de Propagação de null (null Propagation), e o nosso código pode ser simplificado assim:


Note que para acessar a propriedade LimiteCredito do objeto cliente, estamos usando o operador ? antes do ponto. Esse é o operador que permite a propagação de null.

Isso significa que se o parâmetro cliente for null, esse null será propagado para a propriedade LimiteCredito em vez de estourar a exception. Como essa propriedade é do tipo decimal que não permite null, o valor "propagado" será o valor default do decimal, que é 0.

Com isso evitamos as NullReferenceException de uma forma muito mais simples e elegante.

Grande Abraço!

Nenhum comentário:

Postar um comentário