Codigos Fonte, Artigos e Dicas
Valores Null no C#

Requisitos: Tipo-Valor e Tipo-Referência.
Você deve estar careca de saber o que é um valor null (nulo), o que você não deve saber é que no C# um valor nulo é ele próprio uma referência e você não pode atribui-lo a uma variável tipo-valor, como por exemplo um inteiro, legal né?
Moto biz04 = new Moto();
Moto biz04-02;
if (biz-02 == ????)
biz04-02 = biz04
Bem se não existisse valores nulos nós não poderiamos verificar se um um objeto está vazio, ou seja não referenciando para lugar algum ou com algum valor atriubuido, como acima.
Agora vamos fazer certo:
Moto biz04 = new Moto();
Moto biz04-02 = null;
if (biz04-02 == null){
biz04-02 = biz04 //Se o objeto biz04-02 for nulo atribui a referência de biz-04
}
Agora, analise a seguinte instrução:
int p0 = null;
Se você acha que isso vai compilar está muito enganado, como você leu anteriormente o “null” é uma tipo-referência, e não tem como nós colocarmos um tipo-referência dentro de um tipo-valor, para isso existe o tipo-valor nullable.
O C# utilizar um modificador que define uma variável como um tipo-valor nullable, ele é o ponto de interrogação “?”.
int? p0 = null;
if (p0 == null){
int = 0;
}
Observação importante: você não pode atribuir o valor de uma variável nullable para uma variável normal
int? p0 = null; int p1 = 125; p0 = 250; p0 = p1; // copia o valor de p1 (125) para p0 que deixa de ser 250 e vira 125 p1 = p0; // ERRO!
Você também não poderá utilizar o valor de uma variável nullable em um método que espera receber um tipo-valor normal.
O tipo nullable implementa algumas propriedades a mais, como “HasValue” e “Value”
int? p0 = null;
if(!p0.HasValue) // Sim você também poderia usar p0 == null
p0 = 125;
else
Console.WriteLine(p0.Value); // Sim de novo você pode usar apenas a variável p0
HasValue retorna null se ele realmente for nulo, e Value retorna o conteúdo da variável, parece ridículo ter essas propriedades, mas um dia lhe serão de grande valia meu nobre.
Simples assim (a operadora telefônica OI é uma merda)
Posts Relacionados
| Imprimir artigo | Este artigo foi escrito por Alexandre Santos em 30 30UTC julho 30UTC 2009 às 23:35, e está arquivado em C# Linguagem. Siga quaisquer respostas a este artigo através do RSS 2.0. Você pode deixar uma resposta ou fazer um trackback do seu próprio site. |
