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