Estava lendo "CLR via C#" de Jeffrey Richter noite passada quando me deparei com o operador Null-Coalescing. Sabia sobre sua existência, mas nunca soube realmente para que ele fosse utilizado.
Muitas vezes, ao codificar, você precisa atribuir uma variável A a uma B apenas se a variável A não for nula. Se A for nula, você quer que B receba outro valor (talvez um default).
Usando o operador condicional do C#, seu código se pareceria com algo assim:
string fileName = tempFileName != null ? tempFileName : "Untitled";
Se tempFileName não for nulo, fileName receberá o valor de tempFileName, caso contrário, fileName receberá o valor "Untitled".
Utilizando o operador Null-Coalescing, seu código poderia ser abreviado para algo assim:
string fileName = tempFileName ?? "Untitled";
A lógica é a mesma: Se tempFileName for nulo, fileName recebe seu valor, caso contrário, recebe "Untitled".
O operador Null-Coalescing é muito útil com os tipos anuláveis, em particular ao converter esses tipos para seu tipo de origem:
int? count = null;
int amount = count ?? default(int);
Uma vez que count é nulo, amount receberá o valor default para um tipo inteiro, ou seja, zero.
Os operadores condicionais e o Null-Coalescing não são os operadores mais auto explicativos que existem, mesmo assim eu amo programar em C#!
Tradução (livre e porca) de "C# Conditional Operator ( ?: ) and Null-Coalescing Operator ( ?? )"
de David Hayden
Links interessantes:
[]s
Luis Fernando
Nenhum comentário:
Postar um comentário