Nullable Types em C#

Nesta documentação você aprenderá o que é e como utilizar Nullable Types, recurso da linguagem C# para manipulação de valores nulos em tipos não anuláveis.

Nullable Types é um recurso do C# que nos permite atribuir o valor null a um tipo de dado que, por padrão, não aceita valores nulos: os tipos primitivos.

Esse recurso é útil quando precisamos realizar operações em banco de dados e desejamos armazenar um valor nulo em um campo que, posteriormente, receberá um valor de tipo primitivo, como int, float, bool, etc.

Tópicos

Utilizando nullable types

Exemplo prático

Utilizando nullable types

Para fazer a conversão de um tipo em um Nullable Type, basta adicionarmos um ponto de interrogação (?) logo após a declaração do tipo.

int? x = null;

Com esse código, atribuímos o valor null à variável x, de tipo int. Para verificarmos se a variável x recebeu algum valor, podemos utilizar uma estrutura condicional que testa se o seu valor é diferente de null, conforme o código abaixo:

if (x != null) { // x possui um valor inteiro } else { // x possui um valor nulo }
Run

Ou podemos simplificar esse código com o uso de um operador ternário:

Console.WriteLine("O valor de x é " + ((x != null) ? "um inteiro" : "nulo"));

Exemplo prático

Para demonstrar esse recurso na prática, criamos uma tabela Clientes com as colunas IdCliente, Nome e NumeroConta. Neste exemplo, suponha que a coluna NumeroConta permite a atribuição de valores nulos para que eles sejam preenchidos posteriormente.

No código abaixo, criamos uma variável do tipo string e uma do tipo int?, que recebe null e, logo após, solicitamos a inserção desses dados no banco:

string nome = "João"; int? numeroConta = null; ClienteRepositorio repositorio = new ClienteRepositorio(); repositorio.Inserir(nome, numeroConta);

Após a execução, teríamos uma tabela conforme a Figura 1, com a coluna NumeroConta com o valor null:

Figura 1. Coluna NumeroConta
Nota: Para gravação no banco de dados é necessário que o Nullable Type seja tratado na classe de persistência. Caso ele tenha valor nulo, será convertido para o tipo nulo do banco de dados em uso.
Ebook exclusivo
Dê um upgrade no início da sua jornada. Crie sua conta grátis e baixe o e-book

Artigos relacionados