C# Academy · Aula

Nullable em cálculos

Entenda como valores nulos se propagam pela aritmética.

Aula 4 de 413 etapas

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.

Grátis para começar

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

  1. Introdução aos tipos de valor anuláveis
  2. Propriedades HasValue e Value
  3. Operadores de coalescência nula
  4. Nullable em cálculos
← Voltar para C# Academy