ExpertiDict

C# · Essencial · Inglês · Técnico

nullable value type

/ˈnʌləbəl ˈvælju taɪp/substantivo

Versão de um value type que também aceita null, escrita como int? e implementada pela struct Nullable<T>; expõe HasValue e Value.

Onde usar

Aparece em colunas opcionais de banco e em DTOs: um int? diferencia 'sem valor' de zero. Ler Value quando HasValue é falso lança InvalidOperationException.

Em código

int? idade = null;
Console.WriteLine(idade.HasValue); // False
idade = 30;
Console.WriteLine(idade.Value);    // 30
int x = idade ?? 0;

Exemplos

Make it an int? because the column allows null.

Faça um int? porque a coluna aceita null.

Check HasValue before reading Value.

Verifique HasValue antes de ler Value.

Cuidado

Não confunda com nullable reference types: aqui o null existe de verdade em tempo de execução, e não é só um aviso do compilador.

Sinônimos

Nullable<T>, tipo anulável

Veja também

Todos os termos de C#