segunda-feira, 2 de setembro de 2013

C# Tipos Nulos (Nullable Types)

O que é nulo?
O termo nulo é um conceito de programação interessante, ele não significa o mesmo que zero ou em branco, mas sim, muitas vezes, implica em falta ou não de dados e, por isso, é freqüentemente usada como uma bandeira nesse cenário. 
 
Vamos entender melhor sobre Nullable Types
Este conceito se refere á tipos de valores (Value Types), conforme exemplo abaixo:
        char? nullChar = null;
        byte? nullByte = null;
        sbyte? nullsbyte = null;
        short? nullShort = null;
        ushort? nullushort = null;
        int? nullInt = null;
        uint? nullUint = null;
        long? nullLong = null;
        ulong? nullulong = null;
        float? nullFloat = null;
        double? nullDouble = null;
        decimal? nullDecimal = null;
        bool? nullBool = null;
Perceba que existe o operador (?) após o tipo da variável, estes exemplos mostram como deixar uma variável do tipo de valor null. Este padrão também poderá ser usado com struct, veja exemplo abaixo:
        Point point = new Point(10, 10);
        Point? nullPoint = null;
A propriedade HasValue
Conforme exemplos acima, temos o operador (?) para setar null nas variáveis tipadas, para testar esta variável podemos utilizar a propriedade HasValue, por tratar-se de um boolean esta propriedade irá retornar false caso seja null e true caso tenha algum valor. Veja exemplo:
// intVariavel poderá ser Int32 ou Nulo
int? intVariavel = null;

 if (intVariavel.HasValue)
    {
        // intVariavel contém um valor inteiro
    }
 else
    {
        // intVariavel com nulo
    }
Bons estudos.

0 comentários:

Postar um comentário