Guia Prático: Sobrecarga de Métodos no C# para Todos
C# Essentials: Variáveis e Boas Práticas em Programação
Variáveis são os tijolos fundamentais de qualquer programa. Em C#, elas não são apenas "caixas" para🔄 Loops em C#: Repita Tarefas sem Enlouquecer (Com for e while!)Descubra como automatizar repetições em C# utilizando loops for e while com exemplos práticos que evitam erros e otimizam seu código. Aprenda mais! guardar dados - são entidades inteligentes com tipo, comportamento e ciclo de vida próprio. Vamos desvendar seus segredos
🗝️ Azure Key Vault: Gerencie Segredos como um Especialista!Aprenda a proteger e gerenciar segredos, chaves e certificados com o Azure Key Vault em aplicações .NET, seguindo as melhores práticas de segurança na nuvem. de forma prática, com exemplos do mundo real!
Imagine que você está gerenciando um estoque de produtos numa pequena loja. Você precisa guardar informações sobre o nome do item, preço, quantidade🎲 Desafio: Analise Dados de Vendas com LINQ e Coleções!Aprenda a usar coleções e LINQ em C# para analisar vendas, filtrar dados e extrair insights estratégicos que otimizem decisões e impulsionem seu negócio. e até se ele está disponível ou indisponível. No mundo real, isso acontece o tempo todo - e, em C#, chamamos cada uma dessas caixinhas de informação de variável. As variáveis são a base dos nossos programas, pois permitem armazenar e manipular dados de forma organizada, dando a cada pedacinho de informação um nome e
📊 Behavior-Driven Development: Testes que Todo Mundo Entende!Descubra como o BDD transforma testes em linguagens acessíveis. Aprenda a usar SpecFlow em C# para criar testes claros, colaborativos e sem ambiguidades. um tipo.
Para🔄 Loops em C#: Repita Tarefas sem Enlouquecer (Com for e while!)Descubra como automatizar repetições em C# utilizando loops for e while com exemplos práticos que evitam erros e otimizam seu código. Aprenda mais! quem está começando, esse conceito pode parecer simples, mas há muita profundidade em como dados e tipos funcionam em C#. Neste artigo, vamos explorar por que as variáveis são importantes, como declará-las, qual tipo usar e como organizar seu código de forma clara.
📌 Tabela de Conteúdo
3. Declaração e📊 Behavior-Driven Development: Testes que Todo Mundo Entende!Descubra como o BDD transforma testes em linguagens acessíveis. Aprenda a usar SpecFlow em C# para criar testes claros, colaborativos e sem ambiguidades. Atribuição
4. Escopo e📊 Behavior-Driven Development: Testes que Todo Mundo Entende!Descubra como o BDD transforma testes em linguagens acessíveis. Aprenda a usar SpecFlow em C# para criar testes claros, colaborativos e sem ambiguidades. Tempo de Vida
5. Boas Práticas🔢 Operadores Aritméticos: Faça Cálculos como uma Calculadora Humana!Aprenda a dominar operadores aritméticos em C# com exemplos práticos, técnicas de cálculo e dicas para evitar erros e maximizar resultados. de Nomeação
8. Exercício Prático: Calculadora de IMC🎯 Desafio Prático: Crie uma Calculadora de IMC em Console!Crie sua calculadora de IMC em C# com nosso tutorial completo, que aborda variáveis, condições, operações e tratamento de erros para um console interativo.
O que são variáveis? 🔗
Imagine um armazém logístico 🏭:
- Prateleiras = Memória do computador
- Caixas = Variáveis
- Etiquetas = Nomes das variáveis
- Conteúdo = Valores
🏗️ Classes vs. Structs: Quando Usar Cada Uma (e Não Quebrar a Cabeça)!Descubra como escolher entre classes e structs em C#. Aprenda sobre alocação de memória, passagem por valor e referência, e performance nesta explicação clara. armazenados
int numeroDePedidos = 42;
string nomeCliente = "Maria Silva";
double temperaturaArmazem = -15.5;
Cada variável:
1. Reserva espaço na memória (🗄️ tamanho definido pelo tipo)
2. Armazena valores🏗️ Classes vs. Structs: Quando Usar Cada Uma (e Não Quebrar a Cabeça)!Descubra como escolher entre classes e structs em C#. Aprenda sobre alocação de memória, passagem por valor e referência, e performance nesta explicação clara. específicos (🔢 números, texto, etc.)
3. Pode ser reutilizada (♻️ valores🏗️ Classes vs. Structs: Quando Usar Cada Uma (e Não Quebrar a Cabeça)!Descubra como escolher entre classes e structs em C#. Aprenda sobre alocação de memória, passagem por valor e referência, e performance nesta explicação clara. podem mudar)
Sem variáveis, não seria possível armazenar e📊 Behavior-Driven Development: Testes que Todo Mundo Entende!Descubra como o BDD transforma testes em linguagens acessíveis. Aprenda a usar SpecFlow em C# para criar testes claros, colaborativos e sem ambiguidades. manipular dados em um programa. Pense em:
- Contar quantos produtos
🎲 Desafio: Analise Dados de Vendas com LINQ e Coleções!Aprenda a usar coleções e LINQ em C# para analisar vendas, filtrar dados e extrair insights estratégicos que otimizem decisões e impulsionem seu negócio. há em estoque.
- Armazenar o valor total das vendas
🎲 Desafio: Analise Dados de Vendas com LINQ e Coleções!Aprenda a usar coleções e LINQ em C# para analisar vendas, filtrar dados e extrair insights estratégicos que otimizem decisões e impulsionem seu negócio. do dia.
- Verificar se o frete já foi pago.
Cada um desses exemplos requer algum tipo de dado guardado. A variável é onde🎲 Desafio: Analise Dados de Vendas com LINQ e Coleções!Aprenda a usar coleções e LINQ em C# para analisar vendas, filtrar dados e extrair insights estratégicos que otimizem decisões e impulsionem seu negócio. esse dado vive durante a execução do seu programa.
Tipos de Dados em C# 🔗
Em C#, cada variável precisa ter um tipo, que define o que ela pode armazenar. Alguns tipos primitivos muito usados são:
Tipo | Tamanho | Descrição | Exemplo de Uso | Valores Permitidos |
---|---|---|---|---|
int | 4 bytes | Números inteiros (positivos/negativos) | Idade de uma pessoa, quantidade em estoque | -2,147,483,648 a 2,147,483,647 |
double | 8 bytes | Números decimais de dupla precisão | Altura, valor de vendas com centavos | ±5.0e-324 a ±1.7e308 |
decimal | 16 bytes | Números decimais com alta precisão (geralmente para dinheiro) | Preço de um produto unitário em reais | 28-29 dígitos significativos |
bool | 1 bit | Valores lógicos (verdadeiro/falso) | Indica se um item está disponível | true ou false |
string | Variável | Texto (sequência de caracteres) | Nome de produto, descrição | Qualquer texto |
char | 2 bytes | Caracteres únicos | 'A', '7', '€' | Caracteres Unicode |
DateTime | 8 bytes | Datas e horários | 01/01/0001 a 31/12/9999 | Datas e horários |
Por que separar double
de decimal
?
double
é ótimo para cálculos científicos e conta com alta performance🔄 StringBuilder: Quando Concatenar Strings Vira um Pesadelo!Descubra como o StringBuilder otimiza a concatenação em C#, evitando desperdício de memória e melhorando a performance das aplicações. Veja exemplos práticos!, mas pode introduzir pequenas imprecisões no resultado.
decimal
é mais indicado para valores🏗️ Classes vs. Structs: Quando Usar Cada Uma (e Não Quebrar a Cabeça)!Descubra como escolher entre classes e structs em C#. Aprenda sobre alocação de memória, passagem por valor e referência, e performance nesta explicação clara. monetários, pois oferece maior consistência para esse tipo de cálculo.
Exemplo real:
DateTime dataNascimento = new DateTime(1990, 5, 15);
decimal saldoBancario = 1500.75m; // Precisão monetária
Declaração e Atribuição 🔗
Para criar📡 RESTful 101: Princípios que Todo Dev API Precisa Saber!Descubra os fundamentos do REST e boas práticas para criar APIs simples, escaláveis e eficientes. Domine métodos HTTP e status codes com exemplos práticos. (ou “declarar”) uma variável, definimos o tipo e o nome dela. Em seguida, podemos atribuir um valor
🗂️ Dicionários: Acesse Dados por Chaves como um Mestre dos HashMaps!Aprenda a usar dicionários em C# de modo prático e eficiente. Nosso tutorial mostra criação, acesso e otimização para manipular dados com segurança. a essa variável:
int quantidadeEmEstoque; // Declaração
quantidadeEmEstoque = 50; // Atribuição
double valorDaVenda = 199.90; // Declaração + Atribuição direta
bool produtoDisponivel = true; // Este é um booleano
string nomeDoProduto = "Camiseta Algodão";
Você pode tanto declarar e📊 Behavior-Driven Development: Testes que Todo Mundo Entende!Descubra como o BDD transforma testes em linguagens acessíveis. Aprenda a usar SpecFlow em C# para criar testes claros, colaborativos e sem ambiguidades. atribuir em duas linhas distintas quanto fazer diretamente na mesma linha, como no exemplo acima.
Inferência de tipo (var):
var precoMedio = 49.99m; // Compilador detecta o tipo
int defaultInt; // 0
bool defaultBool; // false
object defaultObject; // null
Escopo e Tempo de Vida 🔗
O escopo de uma variável define onde🎲 Desafio: Analise Dados de Vendas com LINQ e Coleções!Aprenda a usar coleções e LINQ em C# para analisar vendas, filtrar dados e extrair insights estratégicos que otimizem decisões e impulsionem seu negócio. ela é válida dentro do código. No geral:
- Variáveis declaradas dentro de um método
🧠 Métodos em C#: Como Criar Funções que Não São Só Enfeites!Otimize seu código em C# com métodos inteligentes. Aprenda práticas de reutilização, sobrecarga e escopo para melhorar a clareza e a eficiência. pertencem somente àquele método
🧠 Métodos em C#: Como Criar Funções que Não São Só Enfeites!Otimize seu código em C# com métodos inteligentes. Aprenda práticas de reutilização, sobrecarga e escopo para melhorar a clareza e a eficiência..
- Assim que o método
🧠 Métodos em C#: Como Criar Funções que Não São Só Enfeites!Otimize seu código em C# com métodos inteligentes. Aprenda práticas de reutilização, sobrecarga e escopo para melhorar a clareza e a eficiência. termina, as variáveis morrem e
📊 Behavior-Driven Development: Testes que Todo Mundo Entende!Descubra como o BDD transforma testes em linguagens acessíveis. Aprenda a usar SpecFlow em C# para criar testes claros, colaborativos e sem ambiguidades. o espaço delas na memória é liberado.
Analogia:
- Bloco de código = Quarto numa casa
- Variável = Móvel dentro do quarto
public void ProcessarPedido()
{
int numeroItens = 5; // Visível apenas neste método
if (numeroItens > 0)
{
string mensagem = "Pedido válido"; // Visível apenas no if
Console.WriteLine(mensagem);
}
// Console.WriteLine(mensagem); ❌ Erro! Fora do escopo
}
Ciclo de vida típico:
2. Vive durante o escopo
3. Morre quando o escopo termina (💀 coletada pelo Garbage Collector⚡ Otimização Unity: Object Pooling e GC Avoidance!Descubra técnicas essenciais de Object Pooling e estratégias GC Avoidance no Unity para otimizar a performance dos seus jogos e evitar pausas indesejadas.)
Boas Práticas de Nomeação 🔗
Em C#, geralmente seguimos o estilo camelCase para🔄 Loops em C#: Repita Tarefas sem Enlouquecer (Com for e while!)Descubra como automatizar repetições em C# utilizando loops for e while com exemplos práticos que evitam erros e otimizam seu código. Aprenda mais! variáveis locais:
- Significado: defina nomes que expliquem o propósito da variável.
- Legibilidade: se a variável representa o preço, use algo como
precoProduto
, em vez dep
oux
.
int a = 10; // Nome sem significado
string str = "Relatório"; // Redundância de tipo
double dblPreco = 99.99; // Notação húngara obsoleta
✅ Soluções profissionais:
int maximoTentativas = 3;
string relatorioMensal = "...";
decimal precoProduto = 99.99m;
Regras de ouro:
1. Use camelCase para🔄 Loops em C#: Repita Tarefas sem Enlouquecer (Com for e while!)Descubra como automatizar repetições em C# utilizando loops for e while com exemplos práticos que evitam erros e otimizam seu código. Aprenda mais! variáveis locais
2. Seja descritivo, mas📊 Behavior-Driven Development: Testes que Todo Mundo Entende!Descubra como o BDD transforma testes em linguagens acessíveis. Aprenda a usar SpecFlow em C# para criar testes claros, colaborativos e sem ambiguidades. conciso
3. Evite abreviações obscuras
4. Considere imutabilidade📝 Strings em C#: Manipule Textos como um Mestre dos Caracteres!Aprenda a dominar os segredos das strings em C# com técnicas de manipulação, concatenação, interpolação e boas práticas, impulsionando sua performance. (
readonly
) quando📊 Behavior-Driven Development: Testes que Todo Mundo Entende!Descubra como o BDD transforma testes em linguagens acessíveis. Aprenda a usar SpecFlow em C# para criar testes claros, colaborativos e sem ambiguidades. possível
Curiosidades Técnicas 🔗
// Value Type (Stack)
int x = 10;
// Reference Type (Heap)
string y = "Texto";
Boxing/Unboxing:
int valor = 100;
object boxed = valor; // Boxing (custo de performance)
int unboxed = (int)boxed; // Unboxing
// Struct (alocação na stack)
public struct Ponto
{
public int X;
public int Y;
}
Exemplos Práticos 🔗
Vamos supor que você é responsável por atualizar📡 RESTful 101: Princípios que Todo Dev API Precisa Saber!Descubra os fundamentos do REST e boas práticas para criar APIs simples, escaláveis e eficientes. Domine métodos HTTP e status codes com exemplos práticos. o estoque e saber se um produto deve estar disponível para compra. Um exemplo simples:
int estoqueAtual = 45;
string nomeProduto = "Caneca de Café";
bool disponivelParaVenda = true;
double preco = 15.99;
// Imagine que alguém comprou duas canecas
int quantidadeVendida = 2;
estoqueAtual = estoqueAtual - quantidadeVendida;
// Se o estoque chegar a 0, o produto não estará mais disponível
if (estoqueAtual <= 0)
{
disponivelParaVenda = false;
}
Console.WriteLine($"Produto: {nomeProduto}");
Console.WriteLine($"Estoque Atual: {estoqueAtual}");
Console.WriteLine($"Está Disponível? {disponivelParaVenda}");
Console.WriteLine($"Preço: R$ {preco}");
Esse simples programa mostra o poder das variáveis: armazenar valores🏗️ Classes vs. Structs: Quando Usar Cada Uma (e Não Quebrar a Cabeça)!Descubra como escolher entre classes e structs em C#. Aprenda sobre alocação de memória, passagem por valor e referência, e performance nesta explicação clara. que podem ser atualizados, comparados e
📊 Behavior-Driven Development: Testes que Todo Mundo Entende!Descubra como o BDD transforma testes em linguagens acessíveis. Aprenda a usar SpecFlow em C# para criar testes claros, colaborativos e sem ambiguidades. exibidos, controlando o fluxo do software conforme os dados mudam ao longo do tempo.
Exercício Prático: Calculadora de IMC 🔗
Código base:
Console.Write("Digite seu peso (kg): ");
double peso = Convert.ToDouble(Console.ReadLine());
Console.Write("Digite sua altura (m): ");
double altura = Convert.ToDouble(Console.ReadLine());
double imc = peso / (altura * altura);
Console.WriteLine($"Seu IMC é: {imc:F2}");
// Classificação (desafio extra!)
if (imc < 18.5) Console.WriteLine("Abaixo do peso");
else if (imc < 25) Console.WriteLine("Peso normal");
else Console.WriteLine("Sobrepeso");
Desafios:
1. Adicione validação para🔄 Loops em C#: Repita Tarefas sem Enlouquecer (Com for e while!)Descubra como automatizar repetições em C# utilizando loops for e while com exemplos práticos que evitam erros e otimizam seu código. Aprenda mais! entradas negativas
2. Implemente faixas de obesidade (I, II, III)
3. Converta para🔄 Loops em C#: Repita Tarefas sem Enlouquecer (Com for e while!)Descubra como automatizar repetições em C# utilizando loops for e while com exemplos práticos que evitam erros e otimizam seu código. Aprenda mais! usar
decimal
ao invés de double
// Bônus: Variável implícita com tipo anônimo
var paciente = new { Nome = "Carlos", Altura = 1.75, Peso = 80.5 };
Console.WriteLine($"Paciente: {paciente.Nome}, IMC: {paciente.Peso / (paciente.Altura * paciente.Altura):F2}");
As variáveis são o coração de qualquer aplicação em C#, pois são responsáveis por manter o estado de execução - desde os pequenos programas de teste até grandes soluções corporativas. Se você dominar bem esse conceito, estará dando um passo importante para aprofundar seu conhecimento e avançar para🔄 Loops em C#: Repita Tarefas sem Enlouquecer (Com for e while!)Descubra como automatizar repetições em C# utilizando loops for e while com exemplos práticos que evitam erros e otimizam seu código. Aprenda mais! tópicos mais complexos.
Autor: Marcelo V. Souza - Engenheiro de Sistemas e Entusiasta em IoT e Desenvolvimento de Software, com foco em inovação tecnológica.
Referências🔗
- .NET Documentation: learn.microsoft.com/pt-br/dotnet/
- Awesome .NET: github.com/quozd/awesome-dotnet
- C# Language Specification: learn.microsoft.com/pt-br/dotnet/csharp/language-reference/language-specification/
- GitHub: Microsoft/.NET: github.com/dotnet
- Microsoft Learn: C# e .NET: learn.microsoft.com/pt-br/dotnet/csharp/