Guia Prático: Sobrecarga de Métodos no C# para Todos
Estruturas de Controle: Aprenda break, continue e goto
Estruturas de controle são como o GPS do seu código: elas definem o fluxo de execução e decidem qual caminho seu programa vai seguir. Neste artigo, vamos explorar três comandos
🔍 Comandos: Desacople Ações dos Botões!Aprenda a implementar comandos em C# para desacoplar lógica e interface usando MVVM, com exemplos práticos e dicas para melhor testabilidade e manutenção. poderosos (e às vezes polêmicos) do C#: break, continue 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 famigerado goto. Você vai aprender a usá-los em cenários
📊 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. reais e descobrir quando eles podem ser aliados ou vilões!
👉 Tabela de Conteúdos
- O Poder do
break: Saindo de Loops
🔄 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! Prematuramente continue: Pulando Etapas com Elegânciagoto: O Comando
🔍 Comandos: Desacople Ações dos Botões!Aprenda a implementar comandos em C# para desacoplar lógica e interface usando MVVM, com exemplos práticos e dicas para melhor testabilidade e manutenção. Polêmico (e Quando Ele Faz Sentido)- Comparação Entre as Estruturas
- 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.: Quando Usar (e Quando Evitar) - Exemplo Prático
📝 Logging com Serilog: Registre Tudo como um Detetive de Bugs!Aprenda a usar Serilog em .NET para registrar logs estruturados, identificar erros e enriquecer informações, transformando seu código num enigma solucionável. no “Mundo Real” - Conclusão
O Poder do break: Saindo de Loops Prematuramente🔗
O break é como um botão de emergência para loops
🔄 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!. Ele interrompe imediatamente a execução do loop, mesmo que a condição ainda seja verdadeira.
Exemplo Prático
📝 Logging com Serilog: Registre Tudo como um Detetive de Bugs!Aprenda a usar Serilog em .NET para registrar logs estruturados, identificar erros e enriquecer informações, transformando seu código num enigma solucionável.: Sistema de login
🎲 Desafio: Crie um Sistema de Login com Tratamento de Erros Robusto!Aprenda a criar um sistema de login robusto em C#, com tratamento de erros adequado, validação e segurança para evitar vulnerabilidades. com limite de tentativas
for (int tentativas = 1; tentativas <= 5; tentativas++)
{
Console.Write("Digite a senha: ");
string senha = Console.ReadLine();
if (senha == "1234")
{
Console.WriteLine("Acesso liberado!");
break; // Sai do loop se a senha estiver correta
}
else
{
Console.WriteLine($"Tentativa {tentativas}/5 falhou!");
}
}
- Validar entradas antes do tempo
- Interromper processamento 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. um resultado é encontrado - Implementar timeout
Timeout e Retries: Estratégias de Resiliência com Async/AwaitAprenda a usar Timeout e Retries com async/await em C# para garantir operações assíncronas robustas e melhorar a resiliência da sua aplicação. em operações repetitivas
Vantagens:
- Evita processamento desnecessário depois que o objetivo do loop
🔄 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! já foi atendido. - Torna o código mais claro 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. a intenção é sair imediatamente.
Desvantagens:
- Usado em excesso, pode poluir o fluxo do loop
🔄 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!, tornando a lógica menos linear de entender.
continue: Pulando Etapas com Elegância🔗
O continue funciona como um "pule esta rodada" em loops
🔄 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!. Ele interrompe a iteração atual e vai para a próxima.
Exemplo Real: Processar apenas números pares em uma lista
📦 List<T>: Dinamismo além dos Arrays!Descubra como utilizar List<T> em C# de forma eficiente. Aprenda a criar, manipular e otimizar listas para diferentes cenários com exemplos práticos.
int[] numeros = { 1, 2, 3, 4, 5, 6 };
foreach (int num in numeros)
{
if (num % 2 != 0)
{
continue; // Ignora números ímpares
}
Console.WriteLine($"Processando número par: {num}");
}
🚀 Resultado:
Processando número par: 2
Processando número par: 4
Processando número par: 6
Vantagens:
- A lógica fica clara 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. queremos “pular” certos itens no loop. - Evita aninhar
if-elsegrandes apenas para
🤔 Estruturas Condicionais: Tomando Decisões com if, else e switchAprenda a dominar as estruturas condicionais em C# com exemplos e dicas práticas. Seu guia para decisões de código eficientes e organizadas.
🔄 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! evitar que um bloco de código rode.
Desvantagens:
- Como o
break, se espalhado em vários pontos, pode deixar a lógica confusa: é preciso verificar todos oscontinuepara entender o fluxo total do loop
🔄 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!.
goto: O Comando Polêmico (e Quando Ele Faz Sentido)🔗
O goto permite pular
Projeções avançadas e uso de sort, skip e limit em consultas complexasDescubra como otimizar consultas MongoDB com projeções avançadas, sort, skip e limit em C#, garantindo performance e eficiência em aplicações .NET. para um rótulo específico no código. Apesar de ser evitado por muitos, tem usos válidos em situações específicas.
Exemplo Controlado: Sair de loops
🔄 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! aninhados
for (int i = 0; i < 10; i++)
{
for (int j = 0; j < 10; j++)
{
if (i * j == 42)
{
Console.WriteLine($"Encontrado em ({i}, {j})");
goto Fim; // Sai de ambos os loops
}
}
}
Fim: // Rótulo de destino
Console.WriteLine("Busca finalizada!");
⚠️ Cuidado!
- Pode 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. código "espaguete" se usado indiscriminadamente - Nunca use para simular loops ou funções
🧠 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. - Aceitável em casos muito específicos (como o exemplo acima)
Vantagens:
- Pode simplificar fluxos extremamente intrincados em códigos “legados” ou conversões de outras linguagens.
Desvantagens:
- Quebra a estrutura sequencial do código 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. pode tornar a manutenção bastante difícil. - A forma de escrever rótulos (labels) 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. saltar pode confundir quem ler seu código.
Comparação Entre as Estruturas🔗
| Comando | Escopo | Uso Ideal | Risco |
|---|---|---|---|
break | Loops e switch | Interromper processamento | Médio |
continue | Loops | Pular iteração específica | Médio |
goto | Qualquer escopo | Sair de múltiplos níveis | Alto |
Boas Práticas: Quando Usar (e Quando Evitar)🔗
✅ Do:
- Use
breakpara otimizar loops longos 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. o objetivo já foi alcançado - Aplique
continuepara filtrar elementos em processamento de coleções
Entendendo a arquitetura do MongoDB: documentos, coleções e bancos de dadosExplore os pilares da arquitetura MongoDB, integrando bancos de dados, coleções e documentos para impulsionar seu desenvolvimento em C# até 2025. - Considere
gotoapenas como última opção em situações muito específicas
❌ Don't:
- Evite
breakem loops
🔄 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! complexos com múltiplas condições de saída - Não use
continuese tornar o código menos legível - Jamais utilize
gotopara 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. fluxos não estruturados
Exemplo Prático no “Mundo Real”🔗
Digamos que estamos gerenciando a entrega de comida em um restaurante, verificando pedidos em fila. Às vezes podemos querer interromper a busca assim que achamos o pedido do cliente (com break). Ou podemos pular
Projeções avançadas e uso de sort, skip e limit em consultas complexasDescubra como otimizar consultas MongoDB com projeções avançadas, sort, skip e limit em C#, garantindo performance e eficiência em aplicações .NET. (com continue) pedidos que estão com status “Cancelado” sem processar nada extra. Já o goto, quase não teria motivo de uso aqui, mas vamos ver um exemplo completo 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! fins didáticos:
using System;
using System.Collections.Generic;
class Program
{
static void Main()
{
List<string> pedidos = new List<string>
{
"Pedido #01 - Em preparo",
"Pedido #02 - Cancelado",
"Pedido #03 - Pronto",
"Pedido #04 - Em preparo",
"Pedido #05 - Cancelado"
};
Console.WriteLine("Procurando pedidos prontos para entrega...");
foreach (var pedido in pedidos)
{
// Se pedido está cancelado, ignora e pula para o próximo (continue).
if (pedido.Contains("Cancelado"))
{
Console.WriteLine($"Ignorando: {pedido}");
continue;
}
Console.WriteLine($"Analisando: {pedido}");
// Se o pedido já está pronto, podemos interromper a busca (break).
if (pedido.Contains("Pronto"))
{
Console.WriteLine($"Pedido encontrado e separado para entrega: {pedido}");
break;
}
}
VoltarAqui: // Label apenas para exemplo com 'goto'
Console.WriteLine("Exemplo de goto: voltamos pra cá.");
// goto no meio do código... não é nada elegante, mas funciona
bool usarGoto = false;
if (usarGoto)
{
goto VoltarAqui;
}
Console.WriteLine("Processo finalizado.");
}
}
🎯 Desafio Prático:
Crie um programa que:
1. Gere números aleatórios de 1 a 100
2. Pare 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. encontrar um número divisível por 7 e 13 simultaneamente (use break)
3. Ignore números pares (use continue)
4. Exiba o resultado final com o número encontrado
Random random = new Random();
while (true)
{
int numero = random.Next(1, 101);
if (numero % 2 == 0)
{
continue;
}
if (numero % 7 == 0 && numero % 13 == 0)
{
Console.WriteLine($"Número mágico encontrado: {numero}");
break;
}
Console.WriteLine($"Testando: {numero}");
}
Dica: O primeiro número que atende a condição é 91 😉
Conclusão🔗
As palavras-chave
🗂️ 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. break, continue 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. goto não são complexas em si, mas podem modificar drasticamente o fluxo de um programa. Enquanto
🔄 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! break 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. continue são usados com frequência controlada para evitar repetições
🔄 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! desnecessárias ou pular etapas indesejadas, o goto é praticamente um dinossauro na linguagem, raramente recomendado. Entender cada um deles aprofundará seu domínio das estruturas de controle, mas lembre-se sempre de manter o código legível
Programação Funcional e LINQ: Abordagem para Maior LegibilidadeDescubra como aplicar conceitos funcionais com LINQ em C# para criar códigos mais legíveis, simples, robustos e fáceis de manter. para quem for ler (incluindo você mesmo daqui a alguns meses!).
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/

há 11 months atrás
há 11 months atrás
há 11 months atrás
há 10 months atrás
há 10 months atrás
há 10 months atrás
há 11 months atrás
há 11 months atrás
há 11 months atrás
há 11 months atrás
há 11 months atrás
há 11 months atrás
há 11 months atrás
há 11 months atrás
há 11 months atrás
há 10 months atrás
há 10 months atrás
há 10 months atrás
há 10 months atrás
há 10 months atrás
há 10 months atrás
há 10 months atrás
há 10 months atrás
há 10 months atrás
há 10 months atrás
há 10 months atrás