Projeto ByteBank - Deixar o Terminal colorido
Pessoal, implementei no meu projeto cores no terminal, para deixar mais intuitivo a interface no terminal e trouxe a idéia de como implementar no projeto de vocês para não deixar tudo branco.
- Pra implementar a gente usa o:
Console.ForegroundColor = ConsoleColor.nomeDaCor
Console.WriteLine("Texto que vai pegar a cor de cima");
Console.ResetColor();
-
O uso do Console.ResetColor() serve para a cor voltar ao normal, se não usar o reset, todas as letras abaixo do Foreground vão ficar com a cor formatada, então o reset logo após volta ao normal a cor branca do terminal.
-
Exemplo do código acima em C#:
Gabriele Martins Pereira @gabi.mpNão sei se alguem comentou, porém da pra mudar a cor de fundo do console também, não somente as letras.
Console.BackgroundColor = ConsoleColor.COR; Console.Clear(); //Serve para mudar todo o console, e não apenas onde há coisas escritas- TEm resposta aLuisGuilhermeNeves⬆:Thiago Nebuloni @thiagonebuloni
Que bela dica Luis!
Já implementei no meu projeto do banco, criei uma função para reutilizar isso e destacar mensagens de erros e confirmações:
static void WriteColor(string txt, string color) { if (color == "Red" || color == "red") { Console.ForegroundColor = ConsoleColor.Red; Console.WriteLine(txt); Console.ResetColor(); } else if (color == "Green" || color == "green") { Console.ForegroundColor = ConsoleColor.Green; System.Console.WriteLine(txt); Console.ResetColor(); } }A utilização ficou assim:
WriteColor("\nNão foi possivel apresentar esta conta.\nMOTIVO: Conta não encontrada.", "Red");
Lucas Ferreira @lksferreiraExcelente, mas você pode ir mais longe, pense assim, a cores são parâmetros de uma determinada classe, e adivinha quem recebe parâmetros?? Exatamente a sua função, então eu também tive a necessidade de implementar algo parecido, a minha ficou desse jeito:
A parte do loop foi ideia do @denilsonbezerra , o efeito ficou bem legal, depois vou postar um vídeo mostrando o sistema funcionando.
- TThiago Nebuloni @thiagonebuloni
Muito bom Lucas! Aprendi mais essa.
Agora fiquei com duas dúvidas:
1- Qual o intuito do laço? Tive que usar logoString.Length dentro dele para não dar erro de index outside the bounds.
2- E o Sleep? Ele dá uma pausa entre as iterações? Mas não entendi a funcionalidade geral.
Lucas Ferreira @lksferreiraO for é pra renderizar linha por linha
O sleep é pra animação ser percebida, caso contrario seria tão rápido que não perceberíamos- TThiago Nebuloni @thiagonebuloni
Ah entendi agora. Precisa ser um texto longo para perceber a animação.
Denilson Bezerra @denilsonbezerraNão precisa necessariamente ser um texto longo para se ter uma animação, olha esse exemplo:
Nesse método ele recebe uma
string text, passa umforeachpara ler letra por letra (charporchar) dastring, então cada um dos caracteres que vão ser printados com uma pausa de tempo aleatório entre 0 e 100 milissegundos ou 0 e 120 milissegundo se a consição se encaixar noif, assim se cria um efeito como se o console estivesse digitando letra por letra.
- AEm resposta aLuisGuilhermeNeves⬆:iara amancio @AntoniaIara
Ótimas dicas, amei!
Em resposta aLuisGuilhermeNeves⬆:Bruno Soares @BrunoSoaresSó pra complementar a ideia, pra facilitar a impressão de um mesmo caracter várias vezes dá pra escrever assim:
string minhaString = new string(caracter, n);Onde caracter é o caracter que você quer que repita e n o número de vezes a ser impresso.
Ex.:
Console.WriteLine(new string('-', 100)); // isso imprime o caracter - 100 vezes
Lucélia Batista @LuceliabatistaDica ótima, adorei
- Em resposta aBrunoSoares⬆:
Lucas Andrade @LucasGostei dessa dica ai! ja vou usar no projeto. Facilita bastante e deixa o código mais bonito
- Em resposta aBrunoSoares⬆:
Gabriele Martins Pereira @gabi.mpAdorei a dica, estava precisando disso! Tem como repetir uma string no lugar de caracter, por exemplo:
string minhaString = new string("----", n);?
Bruno Soares @BrunoSoaresDesse jeito não pq o primeiro parâmetro é obrigatório ser um char, mas como achei tua dúvida bem interessante fui procurar e achei isso:
Fonte: https://stackoverflow.com/questions/3754582/is-there-an-easy-way-to-return-a-string-repeated-x-number-of-times
Tem outras soluções bem interessantes nesse post também se tiver interesse.
Testei e acho que saiu do jeito que você queria:

Gabriele Martins Pereira @gabi.mpSensacional, muito obrigada! Acabei de usar aqui e funcionou!
- Em resposta aBrunoSoares⬆:Vvicente francisco carvalho neto @vicentecarvalho3600
valeu a dica vou vou utilizar!
Em resposta aLuisGuilhermeNeves⬆:Larissa Leal @LariLealEssa dica é ótima. Mas não entendi uma coisa, é nativo do vs ou precisa baixar uma lib?
Bruno Soares @BrunoSoaresÉ nativo não precisa importar nada, dá pra usar dentro do código onde vc achar melhor e quantas vezes quiser.
Larissa Leal @LariLealAh perfeito, agora o programa vai ficar do meu jeitinho enquanto nao tem css, valeu!
Em resposta aLuisGuilhermeNeves⬆:Thiago Marinho @ThiagoMarinhoBoa, vou implementar aqui
Em resposta aLuisGuilhermeNeves⬆:Ricardo Vieira @RicardoBoa !! Estava procurando como fazer isto, simples mas dá um diferencial.
Em resposta aLuisGuilhermeNeves⬆:Lettycia Cristina @lettyciacristinaNossa, dica incrível, muitooo obrigada Luis. Eu sou bem detalhista com estética e essa parte de cor vai ajudar bastante.
Em resposta aLuisGuilhermeNeves⬆:Bruno Coelho @BrunoCoelhoBacana Luis! Gosto de poder variar as cores para ajudar na leitura dos códigos.
Em resposta aLuisGuilhermeNeves⬆:Marco Sousa @marcosousaMuito bom!!! Ficou lindo!
Em resposta aLuisGuilhermeNeves⬆:Lucélia Batista @LuceliabatistaQue ideia legal, obrigada!!
Em resposta aLuisGuilhermeNeves⬆:MARIO IGOR BARBOSA @migorkingai você tirou 10!
Em resposta aLuisGuilhermeNeves⬆:Isabela Schadt @IsabelaSchadtShow Luis!! Adoro um FruFru, já vou implementar aqui kkkkkk vlw!!
Em resposta aLuisGuilhermeNeves⬆:Hebert Almeida Rocha @HebertRochaCaramba que legal, da pra deixar o sistema bem mais customizado e bonito com essa implementação.
Em resposta aLuisGuilhermeNeves⬆:Hebert Almeida Rocha @HebertRochaUma duvida que ficou, eu posso colocar a cor que eu quiser, tipo se eu passar um HEX: #111 ele vai ficar desta cor que no caso e preta, ou só posso usar cores por nomes, que são as principais, tipo: red, green, etc..???
Luis Guilherme Vieira Neves @LuisGuilhermeNevesTipo pelo que eu vi , só tem cores normais sem o uso do #HEX ou do HSL, apenas o nome das cores já setadas:
Hebert Almeida Rocha @HebertRochaSim fui testar tbm e não consegui adicionar outras cores, acho que como é terminal ele limita a essas cores ai mesmo, mas vlw
- LEm resposta aLuisGuilhermeNeves⬆:LENNAN @lennanrnz
pronto pra evoluir meu c# e deixar com mais cara de front
Em resposta aLuisGuilhermeNeves⬆:Luiza Ferreira @luizaferreirafonsecaQue máximo! Obrigada pela dica. Isso faz com que fique mais intuitivo mesmo, além de ajudar na organização. Eu adoro essas funcionalidades.
- BEm resposta aLuisGuilhermeNeves⬆:Brenda Aniceto Bueno @Brenda
Show!! Muito obrigada pela dica
Em resposta aLuisGuilhermeNeves⬆:Ana Karolina Souza @anakarolinaNossa, que legal! Obrigada pela dica, já irei aderir!
Em resposta aLuisGuilhermeNeves⬆:Christian Amsberg Janner @calemaoCurioso porém deixei meu VS Code todo coloridinho kkkkkkkkkkkk, ficou mais legivel tambem para entender melhor o que está sendo feito, obrigado pela dica do terminal!
- NEm resposta aLuisGuilhermeNeves⬆:Nubia Gonçalves Tirabassi @NubiaSantos
Várias dicas bacanas, adorei! Facilita muito no dia a dia.

