Nullable em cálculos
Entenda como valores nulos se propagam pela aritmética.
Nullable em cálculos é uma aula grátis de C# Academy no CoddyKit. Esta é a aula 4 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.
Operadores elevados
O C# “eleva” os operadores aritméticos e de comparação para que funcionem com tipos anuláveis. Operadores como + ganham automaticamente uma versão anulável.
using System;
class Program {
static void Main() {
int? a = 5;
int? b = 3;
Console.WriteLine(a + b);
}
}O nulo se propaga pela matemática
Se qualquer operando em uma expressão aritmética elevada for nulo, o resultado será nulo.
using System;
class Program {
static void Main() {
int? a = 5;
int? b = null;
int? sum = a + b;
Console.WriteLine(sum.HasValue);
}
}Exibindo resultados nulos
Um resultado aritmético nulo é exibido como uma cadeia de caracteres vazia, de acordo com a forma como os valores anuláveis são exibidos.
using System;
class Program {
static void Main() {
int? a = null;
Console.WriteLine("Result: [" + (a * 2) + "]");
}
}Misturando tipos anuláveis e não anuláveis
Você pode misturar int e int? em operações matemáticas; o int é promovido para anulável, e o resultado é anulável.
using System;
class Program {
static void Main() {
int? a = 10;
int b = 4;
int? result = a - b;
Console.WriteLine(result);
}
}Comparações elevadas
As comparações com valores anuláveis também são elevadas. Se qualquer lado for nulo, comparações de ordem como < retornarão falso.
using System;
class Program {
static void Main() {
int? a = null;
int? b = 5;
Console.WriteLine(a < b);
Console.WriteLine(a > b);
}
}Igualdade com nulo
Ao contrário das comparações de ordem, a igualdade é definida: dois valores nulos são iguais, e nulo não é igual a nenhum número.
using System;
class Program {
static void Main() {
int? a = null;
int? b = null;
Console.WriteLine(a == b);
Console.WriteLine(a == 0);
}
}Combinando ?? com matemática
Use ?? para substituir o nulo por um número seguro antes de fazer o cálculo, mantendo o resultado não nulo.
using System;
class Program {
static void Main() {
int? a = null;
int total = (a ?? 0) + 100;
Console.WriteLine(total);
}
}Protegendo a divisão
Combine verificações de HasValue com cálculos para evitar tanto valores nulos quanto a divisão por zero.
using System;
class Program {
static void Main() {
int? a = 20, b = 4;
if (a.HasValue && b.HasValue && b.Value != 0)
Console.WriteLine(a.Value / b.Value);
}
}Somando dados anuláveis
Ao somar dados que podem conter valores nulos, decida se deseja ignorá-los ou tratá-los como zero.
using System;
class Program {
static void Main() {
int?[] data = { 5, null, 10, null, 2 };
int total = 0;
foreach (var x in data)
total += x ?? 0;
Console.WriteLine(total);
}
}Bool anulável na lógica
Um bool? participa da lógica elevada: true | null é verdadeiro, false & null é falso; nos demais casos, o resultado é nulo.
using System;
class Program {
static void Main() {
bool? a = null;
bool? b = true;
Console.WriteLine(a | b);
}
}Convertendo o resultado para um valor comum
Após um cálculo anulável, use ?? ou GetValueOrDefault para obter um valor comum para exibição.
using System;
class Program {
static void Main() {
int? a = 6, b = 7;
int product = (a * b) ?? 0;
Console.WriteLine(product);
}
}Verificação rápida
Teste seus conhecimentos sobre aritmética anulável.
Recapitulação
O C# eleva os operadores aritméticos, de comparação e lógicos para tipos anuláveis. Qualquer operando nulo na aritmética produz um resultado nulo, e as comparações de ordem com nulo retornam falso, enquanto a igualdade é bem definida.
Use ?? ou GetValueOrDefault para substituir valores por alternativas seguras antes ou depois dos cálculos, e use HasValue como proteção quando necessário.
Aprenda C# com um tutor de IA — grátis
Escreva e execute código real no seu navegador, obtenha ajuda instantânea de um tutor de IA 24/7 e continue de onde parou na web ou no app.
- Cursos
- 93
- Aulas
- 346
Perguntas Frequentes
A aula “Nullable em cálculos” é grátis?
Sim — o texto completo de “Nullable em cálculos” é 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 “Nullable em cálculos”?
Entenda como valores nulos se propagam pela aritmética. 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 4 de 4.
Quanto tempo leva a aula “Nullable em cálculos”?
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