C# · Essencial · Inglês · Técnico
nullable value type
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