;

quarta-feira, 23 de fevereiro de 2011

Operador ?? (null coalescing)


Quando criei este blog, o meu objetivo principal era compartilhar conhecimento com a comunidade. E o post de hoje é fruto desta interação. No meu artigo Immediate IF um leitor, que infelizmente não se identificou, citou em um comentário o operador”??” do C#. Confesso que não conhecia o operador, mas fui atrás do link que o leitor deixou para ver do que se tratava. E agora resolvi fazer um artigo para apresentar este operador a vocês.

O operador ??, chamado de null-coalescing é usado para definir um valor default em operações com tipos de valores que podem ser nulos. Em outras palavras, é usado para verificar se uma variável é nula, e se sim, retornar um valor válido. Se a varável testada for nula, retorna o valor padrão informado, algo como o IsNull do T-SQL. Veja um exemplo extraído da documentação do MSDN para entender do que estou falando:

    int? x = null;
    int y = x ?? -1; // y vai receber -1

No exemplo apresentado, declaramos a variável ”x”, como um int nullable (nullable é uma variável que pode receber null – abordarei este assunto num post futuro), e atribuímos null a “x”. Declaramos também a variável “y” como um int normal, ou seja, não pode receber o valor null. Se fizermos a operação  int y = x, o .NET vai retornar um erro dizendo que “y” não pode ser nulo. Assim, para evitar esta exception usa-se o “??”. Se o valor à esquerda for nulo, retornará o valor que está à direita do operador, neste caso “-1”.

0 comentários:

Postar um comentário