1
resposta

[Dúvida] Diferença entre ToString e método para Exibir informações

Olá pessoal, eu estou estudando os métodos que derivam da classe Object do C#. Um deles é o ToString(), vi o uso dele na prática e não sei se ainda ficou muito claro o seu uso. Comparando o uso do ToString e de um método criado dentro da classe para exibir qual seria a diferença? Segue o código.

Da classe:

namespace ConsoleAppGetHashToStringEquals;

internal class Pessoa
{
    public string Nome { get; set; }

    public string Morada { get; set; }

    public int Idade { get; set; }

    public string Email { get; set; }


    public Pessoa() // construtor sem parâmetros, por omissão da construção
    {
        Nome = "";
        Morada = "";
        Idade = 0;
        Email = "";
    }

    public Pessoa(string nome, string morada, int idade, string email)
    {
        Nome = nome;
        Morada = morada;
        Idade = idade;
        Email = email;
    }

    public Pessoa(Pessoa p) // Construtor de cópia, caso já tenha os valores já de uma pessoa criado
                            //com isso, será feita uma cópia dessa pessoa para o nosso objeto
    {
        Nome = p.Nome;
        Morada = p.Morada;
        Idade = p.Idade;
        Email = p.Email;
    }

    public override string ToString()
    { //Permite fazer a apresentação dos dados do objeto Pessoa
            return "\nNome: " + Nome +
                "\nMorada: " + Morada +
                "\nIdade: " + Idade +
                "\nEmail: " + Email + "\n";
    }

    public void ExibirDetalhes()
    {
        Console.WriteLine($"Nome1: {Nome}");
        Console.WriteLine($"Morada1: {Morada}");
        Console.WriteLine($"Idade1: {Idade}");
        Console.WriteLine($"Email1: {Nome}");
    }


}

Do meu program.cs

using ConsoleAppGetHashToStringEquals;

Pessoa pessoa1 = new();
pessoa1.Nome = "Pedro";
pessoa1.Morada = "EUA";
pessoa1.Idade = 22;
pessoa1.Email = "pepeu13silva@gmail.com";


Console.WriteLine(pessoa1);


Pessoa pessoa2 = new();
pessoa2.Nome = "Lucas";
pessoa2.Morada = "BRA";
pessoa2.Idade = 32;
pessoa2.Email = "lucas10santos@gmail.com";

pessoa2.ExibirDetalhes();


1 resposta

Rhyann,

Então, né... são duas formas diferentes de fazer, você precisa decidir qual é a que você gosta mais.

No caso do modificador "override" você sobreescreve a função, é um lance de herança, sacou?

Abaixo você indicar alguns links para você além de retirar sua dúvida, se tornar um "expert" nestes assuntos:

=================================

Substituição (referência de C#)

Artigo - 06/04/2023

O modificador override é necessário para estender ou modificar a implementação abstrata ou virtual de um método, propriedade, indexador ou evento herdado.

https://www.bing.com/search?q=c%23+override+&form=ANNH01&refig=1f203127dd9f45ff959f0434c109b927

=================================

Object.ToString Método

Retorna uma cadeia de caracteres que representa o objeto atual.

Nesta seção:

  • O método padrão Object.ToString()
  • Substituindo o método Object.ToString()
  • Sobrecarregando o método ToString
  • Estendendo o método Object.ToString
  • Anotações para o Windows Runtime

https://learn.microsoft.com/pt-br/dotnet/api/system.object.tostring?view=net-7.0

=================================

[]'s,

Fabio I.