Fala ai galera, tudo certo?
Por vezes dou uma olhada em códigos antigos da galera, ou faço algum review de código fresquinho; e algumas vezes encontramos algumas coisas que podem ser melhoradas ou refatoradas, né?
A ideia aqui é mostrar os casos da vida real, que encontro na empresa onde trabalho e/ou em consultorias, expô-los aqui e mostrar uma maneira melhor de se fazer. E claro, sempre há alguma maneira melhor de se fazer alguma coisa, então se vocês tiverem uma solução melhor, mandem pull requests no repositório e comentem aqui no post, pode ser?
Caso do String Builder
Hoje me deparei com o seguinte código (não exatamente assim, mas no mesmo sentido):
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
var sb1 = new StringBuilder(); | |
sb1.Append("PRIMEIRA LINHA" + Environment.NewLine); | |
sb1.Append("SEGUNDA LINHA"); | |
var x = sb1.ToString(); | |
Console.WriteLine(x); |
Reparem, que na linha 3, a pessoa que escreveu o código, precisava garantir que o texto quebrasse uma linha, certo? E ela concatenou com o texto a string “Enviroment.NewLine” que no final das contas vai concatenar um “\r\n” e quebrar a linha.
O resultado é parecido com isso aqui:
Ok, o resultado foi o esperado! Só alegria 😀
Mas agora, vou mostrar um método da classe StringBuilder chamado AppendLine que faz a mesma coisa, porém sem a necessidade do uso da concatenação da quebra de linha. vejam:
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
var sb2 = new StringBuilder(); | |
sb2.AppendLine("PRIMEIRA LINHA"); | |
sb2.Append("SEGUNDA LINHA"); | |
var y = sb2.ToString(); | |
Console.WriteLine(y); |
E o resultado é o mesmo:
Belezura galera?
Os códigos utilizados estão disponíveis no GitHub: https://github.com/vmussak/CasosDaVidaReal
Por hoje é só isso, qualquer dúvida ou sugestão, estou à disposição! Até mais 😀