Tipos, variáveis e var
ResumoC# é fortemente tipado. Cada variável tem um tipo conhecido em tempo de compilação.
varnã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:
| Tipo | Uso |
|---|---|
int, long | inteiros |
decimal, double | números com casas decimais (decimal para dinheiro) |
bool | verdadeiro/falso |
string | texto |
char | um caractere |
DateTime, DateOnly | datas |
Guid | identificadores ú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.
4. Mão na Massa#
4.1. Setup#
dotnet new console -n Catalog.Tipos
cd Catalog.Tipos
4.2. Implementação Passo a Passo#
- Tipos explícitos vs
var:
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
- Conversões:
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#
dotnet run
5. Exemplo Completo#
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ça | Evite |
|---|---|
Usar decimal para valores monetários | Usar double para dinheiro (erros de arredondamento) |
Usar TryParse para entradas não confiáveis | Parse direto em dados do usuário (exceção) |
Usar var quando o tipo é óbvio | var quando prejudica a leitura |
Atenção
varnão é ovardo JavaScript. O tipo é fixo em compilação; você não pode reatribuir outro tipo depois.
7. Segurança e Produção#
- Prefira
TryParseao 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
stringemintcomTryParsee trate a falha. - Desafio: mostre com um exemplo por que
0.1 + 0.2difere entredoubleedecimal.
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#
- Microsoft Learn — Tipos internos do C#
- Microsoft Learn — Variáveis locais tipadas implicitamente (var)
- Microsoft Learn — Conversões de tipo