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!)🔄 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!🗝️ 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!🎲 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!📊 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!)🔄 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

1. O que são variáveis?

2. Tipos de Dados em C#

3. Declaração e📊 Behavior-Driven Development: Testes que Todo Mundo Entende!📊 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!📊 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!🔢 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

6. Curiosidades Técnicas

7. Exemplos Práticos

8. Exercício Prático: Calculadora de IMC🎯 Desafio Prático: Crie uma Calculadora de IMC em Console!🎯 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 🏭:

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)!🏗️ 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)!🏗️ 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!📊 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:

Cada um desses exemplos requer algum tipo de dado guardado. A variável é onde🎲 Desafio: Analise Dados de Vendas com LINQ e Coleções!🎲 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:

TipoTamanhoDescriçãoExemplo de UsoValores Permitidos
int4 bytesNúmeros inteiros (positivos/negativos)Idade de uma pessoa, quantidade em estoque-2,147,483,648 a 2,147,483,647
double8 bytesNúmeros decimais de dupla precisãoAltura, valor de vendas com centavos±5.0e-324 a ±1.7e308
decimal16 bytesNúmeros decimais com alta precisão (geralmente para dinheiro)Preço de um produto unitário em reais28-29 dígitos significativos
bool1 bitValores lógicos (verdadeiro/falso)Indica se um item está disponíveltrue ou false
stringVariávelTexto (sequência de caracteres)Nome de produto, descriçãoQualquer texto
char2 bytesCaracteres únicos'A', '7', '€'Caracteres Unicode
DateTime8 bytesDatas e horários01/01/0001 a 31/12/9999Datas e horários

Por que separar double de decimal?

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!📡 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!🗂️ 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!📊 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

Valores🏗️ Classes vs. Structs: Quando Usar Cada Uma (e Não Quebrar a Cabeça)!🏗️ 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. padrão:

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!🎲 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:

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:

1. Nasce quando📊 Behavior-Driven Development: Testes que Todo Mundo Entende!📊 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. declarada

2. Vive durante o escopo

3. Morre quando o escopo termina (💀 coletada pelo Garbage Collector⚡ Otimização Unity: Object Pooling e GC Avoidance!⚡ 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!)🔄 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 de p ou x.

🚫 Erros comuns🔏 Criptografia Assimétrica: Domine RSA e Troca de Chaves!🔏 Criptografia Assimétrica: Domine RSA e Troca de Chaves!Descubra como a criptografia assimétrica protege a troca de chaves e garante segurança em sistemas digitais usando RSA, C# e práticas recomendadas.:

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!)🔄 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!📊 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!📝 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!📊 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 🔗

Stack vs🛠️ Instalação do Visual Studio: Prepare sua Nave para Decolar!🛠️ Instalação do Visual Studio: Prepare sua Nave para Decolar!Prepare seu ambiente de desenvolvimento com o Visual Studio em uma aventura C#. Este tutorial prático ensina a instalar, configurar e personalizar sua IDE. Heap:

// 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

Otimização⏱️ Testes de Performance: Garanta Velocidade Além da Funcionalidade!⏱️ Testes de Performance: Garanta Velocidade Além da Funcionalidade!Descubra como medir, diagnosticar e otimizar performance em aplicações .NET com dicas práticas e ferramentas essenciais para devs. de memória:

// 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!📡 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)!🏗️ 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!📊 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!)🔄 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!)🔄 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!)🔄 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🔗

Compartilhar artigo

Artigos Relacionados