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!