Compartilhar via


Classe System.Nullable

Observação

Este artigo fornece comentários complementares à documentação de referência para esta API.

A Nullable classe dá suporte a tipos de valor que podem ser atribuídos null.

Um tipo é considerado anulável se puder ser atribuído a um valor ou puder ser atribuído null, o que significa que o tipo não tem valor algum. Por padrão, todos os tipos de referência, como String, são anuláveis, mas todos os tipos de valor, como Int32, não são.

Em C# e Visual Basic, você marca um tipo de valor como anulável usando a ? notação após o tipo de valor. Por exemplo, int? em C# ou Integer? no Visual Basic declara um tipo de valor inteiro que pode ser atribuído null.

A Nullable classe fornece suporte complementar para a Nullable<T> estrutura. A Nullable classe dá suporte à obtenção do tipo subjacente de um tipo anulável e a operações de comparação e igualdade em pares de tipos anuláveis cujo tipo de valor subjacente não dá suporte a operações genéricas de comparação e igualdade.

Boxe e desembalagem

Quando um tipo anulável é encaixotado, o Common Language Runtime automaticamente encaixota o valor subjacente do objeto Nullable<T>, não o objeto Nullable<T> em si. Ou seja, se HasValue propriedade for true, o conteúdo de Value propriedade será empacotado.

Se a propriedade HasValue de um tipo anulável for false, o resultado da operação de boxe será null. Quando o valor subjacente de um tipo anulável é desempacotado, o Common Language Runtime cria uma nova Nullable<T> estrutura inicializada com o valor subjacente.