Em diversas situações durante o desenvolvimento de algum algoritmo, temos que fazer várias conferências para retornar ou executar algo. Nesses casos, temos por costume usar um monte de IF ou até mesmo o SWITCH.
Vamos supor que você queira construir um sistema de tradução (português, inglês e espanhol) para seu projeto, com frases pré definidas por você. Para isso, a cada mensagem que seria traduzida, você teria que conferir qual a língua atual e exibir um texto. Você poderia fazer isso usando o IF ou SWITCH, veja:
Usando IF:
string lingua = "ingles"; if (lingua == "ingles") { Console.WriteLine($"Hello World!"); } else if (lingua == "portugues") { Console.WriteLine($"Olá Mundo!"); } else if (lingua == "espanhol") { Console.WriteLine($"Hola Mundo!"); } //Output: //Hello World!
Usando SWITCH:
string lingua = "ingles"; switch (lingua) { case "ingles": Console.WriteLine($"Hello World!"); break; case "portugues": Console.WriteLine($"Olá Mundo!"); break; case "espanhol": Console.WriteLine($"Hola Mundo!"); break; } //Output: //Hello World!
Ambos os exemplos funcionam, correto? Mas então, por que fazer de outra forma? As principais são:
- Manutenção do código;
- Poluição da escrita;
- Melhorar suas “chamadas” em outros trechos de código;
- Processamento!
Ok, como podemos melhorar? Use um Dictionary! Veja abaixo um exemplo dessa solução usando o Dictionary:
string lingua = "ingles"; Dictionary<string, string> traducao = new Dictionary<string, string>() { { "ingles", "Hello World!" }, { "portugues", "Olá Mundo!" }, { "espanhol", "Hola Mundo!" } }; Console.WriteLine($"{traducao[lingua]}"); //Output: //Hello World!
Muito melhor, não? Este é um exemplo super simples de como se diminuir o uso de IF/SWITCH em seu código.
Conclusão:
Quando temos que fazer várias conferências em nosso algoritmo, o uso de IF/SWITCH é a primeira opção, mas dependendo do tamanho dessas conferências, a manutenção e legibilidade do código se torna horrível, devido a isso, fazer uso do Dictionary auxilia na melhora desses problemas.
Comments by Vitor Ricardo