Como substituir o método ToString (Guia de Programação em C#)

Cada classe ou struct no C# herda implicitamente a classe Object. Portanto, cada objeto no C# obtém o método ToString, que retorna uma representação de cadeia de caracteres desse objeto. Por exemplo, todas as variáveis do tipo int tem um método ToString, que permite retornar seus conteúdos como uma cadeia de caracteres:

int x = 42;
string strx = x.ToString();
Console.WriteLine(strx);
// Output:
// 42

Ao criar uma classe ou struct personalizada, é necessário substituir o método ToString a fim de fornecer informações sobre o tipo ao código cliente.

Para obter informações sobre como usar cadeias de caracteres de formato e outros tipos de formatação personalizada com o método ToString, consulte Tipos de Formatação.

Importante

Ao decidir quais informações devem ser fornecidas por meio desse método, considere se a classe ou struct será utilizado por código não confiável. Assegure-se de que nenhuma informação que possa ser explorada por código mal-intencionado seja fornecida.

Substituir o método ToString na classe ou struct:

  1. Declare um método ToString com os seguintes modificadores e tipo retornado:

    public override string ToString(){}  
    
  2. Implemente o método para que ele retorne uma cadeia de caracteres.

    O exemplo a seguir retorna o nome da classe, além dos dados específicos de uma instância particular da classe.

    class Person
    {
        public string Name { get; set; }
        public int Age { get; set; }
    
        public override string ToString()
        {
            return "Person: " + Name + " " + Age;
        }
    }
    

    É possível testar o método ToString, conforme mostrado no exemplo de código a seguir:

    Person person = new Person { Name = "John", Age = 12 };
    Console.WriteLine(person);
    // Output:
    // Person: John 12
    

Confira também