System.Nullable classe
Este artigo fornece observações complementares à documentação de referência para essa API.
A Nullable classe oferece suporte a tipos de valor que podem ser atribuídos null
.
Um tipo é dito ser anulável se ele pode ser atribuído um valor ou pode ser atribuído null
, o que significa que o tipo não tem nenhum valor. Por padrão, todos os tipos de referência, como , são anuláveis, mas todos os tipos de valor, como StringInt32, 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 turma dá suporte complementar para a Nullable<T> estrutura. A Nullable classe oferece suporte à obtenção do tipo subjacente de um tipo anulável e operações de comparação e igualdade em pares de tipos anuláveis cujo tipo de valor subjacente não oferece suporte a operações genéricas de comparação e igualdade.
Conversão boxing e unboxing
Quando um tipo anulável é encaixotado, o Common Language Runtime encaixota automaticamente o valor subjacente do Nullable<T> objeto, não o Nullable<T> objeto em si. Ou seja, se a HasValue propriedade for true
, o conteúdo da Value propriedade será encaixotado.
Se a HasValue
propriedade 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 é unboxed, o Common Language Runtime cria uma nova Nullable<T> estrutura inicializada para o valor subjacente.