Introdução aos tipos de valor anuláveis
Declare int?, double? e entenda Nullable .
Introdução aos tipos de valor anuláveis é uma aula grátis de C# Academy no CoddyKit. Esta é a aula 1 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de C# Academy, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de C# Academy inclui 4 aulas no total.
Tipos de valor não podem ser nulos
Normalmente, um int sempre contém um número; ele nunca pode ser null. Às vezes, você precisa representar a ausência de um valor, como no caso de uma medição ausente.
using System;
class Program {
static void Main() {
int count = 0;
Console.WriteLine(count);
}
}Anulável com ?
Adicione ? depois de um tipo de valor para torná-lo anulável. int? pode conter qualquer int ou null.
using System;
class Program {
static void Main() {
int? maybe = null;
Console.WriteLine(maybe.HasValue);
maybe = 42;
Console.WriteLine(maybe);
}
}Outros tipos anuláveis
Qualquer tipo de valor pode ser anulável: double?, bool?, DateTime? e assim por diante.
using System;
class Program {
static void Main() {
double? temp = null;
bool? flag = true;
Console.WriteLine(temp.HasValue + " " + flag);
}
}<code>Nullable<T></code> por extenso
int? é apenas uma abreviação da estrutura Nullable<int>. Ambos são compilados exatamente como o mesmo tipo.
using System;
class Program {
static void Main() {
Nullable<int> a = 10;
int? b = 10;
Console.WriteLine(a == b);
}
}Atribuindo nulo
Você pode atribuir livremente null a uma variável anulável e atribuir um valor real a ela novamente mais tarde.
using System;
class Program {
static void Main() {
int? id = 100;
Console.WriteLine(id);
id = null;
Console.WriteLine(id.HasValue);
}
}Exibindo um anulável nulo
Exibir um anulável que é null produz uma cadeia de caracteres vazia, não a palavra nulo.
using System;
class Program {
static void Main() {
int? value = null;
Console.WriteLine("[" + value + "]");
}
}Conversão implícita para anulável
Um int comum é convertido automaticamente para int?, pois todo int é um int anulável válido.
using System;
class Program {
static void Main() {
int x = 7;
int? y = x;
Console.WriteLine(y);
}
}Anulável nos retornos de métodos
Um método pode retornar um tipo anulável para indicar a diferença entre encontrar um valor e não encontrar nada.
using System;
class Program {
static int? FindEven(int[] nums) {
foreach (int n in nums)
if (n % 2 == 0) return n;
return null;
}
static void Main() {
Console.WriteLine(FindEven(new[] {1, 3, 4}));
}
}Comparando anuláveis
A igualdade funciona como esperado: dois anuláveis são iguais se ambos forem nulos ou se ambos contiverem o mesmo valor.
using System;
class Program {
static void Main() {
int? a = null;
int? b = null;
Console.WriteLine(a == b);
int? c = 5;
Console.WriteLine(c == 5);
}
}Por que usar tipos anuláveis
Os tipos de valor anuláveis representam dados opcionais de forma clara, como uma coluna de banco de dados que permite NULL ou um campo deixado em branco pelo usuário.
using System;
class Program {
static void Main() {
int? userAge = null;
string msg = userAge.HasValue ? "Age set" : "Age unknown";
Console.WriteLine(msg);
}
}Anulável é uma estrutura
O próprio Nullable<T> é um tipo de valor, portanto uma variável anulável nunca é uma referência, embora possa ser nula.
using System;
class Program {
static void Main() {
int? n = 3;
Console.WriteLine(n.GetType().Name);
}
}Verificação rápida
Verifique sua compreensão dos tipos de valor anuláveis.
Recapitulação
Tipos de valor como int não podem ser nulos por padrão. Adicionar ? cria um tipo anulável (int?), que é uma abreviação de Nullable<T>.
Os tipos anuláveis permitem representar dados ausentes ou opcionais, são convertidos implicitamente a partir do tipo subjacente e são estruturas por si mesmos.
Perguntas Frequentes
A aula “Introdução aos tipos de valor anuláveis” é grátis?
Sim — o texto completo de “Introdução aos tipos de valor anuláveis” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de C# Academy, atualize para CoddyKit PRO. O curso de C# Academy inclui 4 aulas no total.
O que vou aprender em “Introdução aos tipos de valor anuláveis”?
Declare int?, double? e entenda Nullable . Você pratica C# Academy com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.
Preciso ter experiência prévia para começar C# Academy?
Nenhuma experiência prévia é necessária. C# Academy no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 1 de 4.
Quanto tempo leva a aula “Introdução aos tipos de valor anuláveis”?
A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.
Posso escrever e executar código nesta aula de C# Academy?
Sim. Cada aula de C# Academy inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.
Todas as aulas deste curso
- Introdução aos tipos de valor anuláveis
- Propriedades HasValue e Value
- Operadores de coalescência nula
- Nullable em cálculos