1

Escreva um ToString() um pouco mais elegante! ^^

#C#
Marcelo Santana
Marcelo Santana

Para quem está vendo pela primeira vez o método ToString()

Você pode ver no Bootcamp "everis New Talents #2 .NET"

No curso: Criando uma aplicação de transferências bancárias com .NET

Do nosso professor Eliézer Zarpelão!


Você pode utilizar algo que já vem na Library do .Net

Que sempre me assustou!

Mas por que não perder o medo, não é mesmo?


Vamos lá?

Rápido e prático!


public override string ToString()
    {
      StringBuilder texto = new StringBuilder("");

      texto.Append($"Tipo de Conta {this.TipoConta}").Append("\n");
      texto.Append($"Nome {this.Nome}").Append("\n");
      texto.Append($"Saldo {this.Saldo}").Append("\n");
      texto.Append($"Crédito {this.Credito}").Append("\n");

      return texto.ToString();
    }


Utilize StringBuilder como tipo. Ele é uma classe de criar textos.

StringBuilder texto = new StringBuilder("");


Assim, como você vê em JS, se já brincou com JavaScript você já deparou com o método .append() quando queremos inserir algo numa Array. Certo?


É isso aí, o .Append() ele anexa o teu texto como se você utilizasse o famoso:

+=


Por que eu dou 2 Appends?

 Append().Append()


Por que, ao construir o meu texto eu quero adicionar também a quebra de linha "\n".

"\n"

Esta quebra de linha também é super famosa no mundo da programação.


Ah, já ia me esquecendo de algo... String Interpolation!

Diferente de JS, que vemos algo assim:

"${nome} e ${idade}"

Em C#, é um tanto mais facilitado. Ao invés, que usar as referências numéricas 0 e 1 no Console.

Console.WriteLine("{0} {1}", nome, idade);

Preferimos a interpolação, que em C# você escreve o sinal de dólar uma única vez! ^^

No início da string " ".

Console.WriteLine($"{nome} e {idade}");


Por isso você viu a interpolation no meio da bagunça do Builder:

texto.Append($"Nome {this.Nome}").Append("\n");


Ainda, podemos melhorar linha a linha... Ao invés de utilizar dois Appends eu posso utilizar AppendLIne() que já carrega a quebra de linha consigo. Assim sendo teriamos:

public override string ToString()
    {
      StringBuilder texto = new StringBuilder("");

      texto.AppendLine($"Tipo de Conta {this.TipoConta}");
      texto.AppendLine($"Nome {this.Nome}");
      texto.AppendLine($"Saldo {this.Saldo}");
      texto.AppendLine($"Crédito {this.Credito}");

      return texto.ToString();
    }




Qualquer dúvidas, pode me procurar no Discord como:

The Crazy Scientist



At.te

0
28

Comentários (0)

None

Brasil