Pular para o conteúdo
.NETTipos, variáveis e var
Módulo 01Fundamentos da Plataforma e da Linguagem

Tipos, variáveis e var

iniciante 25 min de leitura·Atualizado · .NET 9
Resumo

C# é fortemente tipado. Cada variável tem um tipo conhecido em tempo de compilação. var não é "sem tipo": é inferência — o compilador deduz o tipo pelo valor atribuído.

1. Objetivos de Aprendizagem#

  • Declarar variáveis com tipos explícitos e com var.
  • Conhecer os tipos primitivos mais usados.
  • Entender conversões implícitas e explícitas (cast).

2. Pré-requisitos#

  • Projeto de console criado (tópico 1.3).

3. Conceito#

C# resolve tipos em tempo de compilação (tipagem estática). Isso pega erros cedo e habilita autocompletar. Os tipos mais usados no dia a dia:

TipoUso
int, longinteiros
decimal, doublenúmeros com casas decimais (decimal para dinheiro)
boolverdadeiro/falso
stringtexto
charum caractere
DateTime, DateOnlydatas
Guididentificadores únicos

var pede ao compilador para inferir o tipo pelo lado direito. O tipo continua fixo e forte — só a digitação é mais curta. O porquê: reduzir ruído quando o tipo já é óbvio pelo valor.

3.1. Interpolação de string e formato#

Você verá $"..." em quase todos os exemplos deste curso — é a interpolação de string. O $ antes das aspas liga a interpolação; dentro, {expressão} é avaliado e inserido no texto:

C#
var nome = "Mouse";
var preco = 89.90m;
var linha = $"{nome} custa {preco}";      // "Mouse custa 89.90"

Depois de : dentro das chaves vem um especificador de formato — como o valor é exibido:

FormatoEfeitoExemplo
:Cmoeda{preco:C}R$ 89,90
:N2número com 2 casas{preco:N2}89,90
:P0porcentagem{0.1:P0}10%
:yyyy-MM-dddata{data:yyyy-MM-dd}
Atenção

:C e :N dependem da cultura do processo (CultureInfo). O mesmo {preco:C} mostra R$ 89,90 em pt-BR e $89.90 em en-US. Em servidor, a cultura pode não ser a que você espera — para valores estáveis (logs, arquivos, APIs), formate com CultureInfo.InvariantCulture em vez de confiar no padrão.

4. Mão na Massa#

4.1. Setup#

Shell
dotnet new console -n Catalog.Tipos
cd Catalog.Tipos

4.2. Implementação Passo a Passo#

  1. Tipos explícitos vs var:
C#
int quantidade = 10;
decimal preco = 19.90m;       // sufixo m = decimal
string nome = "Teclado";
bool ativo = true;

var total = quantidade * preco; // inferido como decimal
var rotulo = $"{nome}: {total:C}"; // string interpolada
  1. Conversões:
C#
int i = 5;
double d = i;             // implícita (não perde dados)
int back = (int)d;        // explícita (cast, pode truncar)

string texto = "42";
int parsed = int.Parse(texto);          // lança se inválido
bool ok = int.TryParse("x", out int n); // seguro: ok=false, n=0

4.3. Executando#

Shell
dotnet run

5. Exemplo Completo#

C#
var nome = "Mouse";
var preco = 89.90m;
var emEstoque = true;
Console.WriteLine($"{nome} custa {preco:C} — disponível: {emEstoque}");

6. Boas Práticas e Armadilhas#

FaçaEvite
Usar decimal para valores monetáriosUsar double para dinheiro (erros de arredondamento)
Usar TryParse para entradas não confiáveisParse direto em dados do usuário (exceção)
Usar var quando o tipo é óbviovar quando prejudica a leitura
Atenção

var não é o var do JavaScript. O tipo é fixo em compilação; você não pode reatribuir outro tipo depois.

7. Segurança e Produção#

  • Prefira TryParse ao processar dados de requisições — evita exceções não tratadas por entrada malformada.

8. Exercícios#

  • Fácil: declare variáveis de cada tipo primitivo.
  • Médio: converta uma string em int com TryParse e trate a falha.
  • Desafio: mostre com um exemplo por que 0.1 + 0.2 difere entre double e decimal.

9. Resumo#

C# é fortemente tipado; var é inferência, não ausência de tipo. Use decimal para dinheiro e TryParse para entradas incertas.

10. Próximos Passos#

A seguir, operadores e controle de fluxo.

11. Referências#

03-01 — Tipos, variáveis e var | Curso ASP.NET Core