Procedura: eseguire l'override del metodo ToString (Guida per programmatori C#)

Ogni classe o struct in C# eredita in modo implicito la classe Object. Ogni oggetto in C# ottiene pertanto il metodo ToString, il quale restituisce una rappresentazione in formato stringa di tale oggetto. Tutte le variabili di tipo int dispongono ad esempio di un metodo ToString, che consente di restituire il relativo contenuto in formato stringa:

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

Quando si crea una struttura o una classe personalizzata, è necessario eseguire l'override del metodo ToString per fornire informazioni sul tipo al codice client.

Nota sulla sicurezzaNota sulla sicurezza

Quando si decide quali informazioni fornire attraverso questo metodo, considerare se la classe o la struttura verrà utilizzata da codice non attendibile. Assicurarsi di non fornire informazioni che potrebbero essere utilizzate da codice dannoso.

Per eseguire l'override del metodo ToString nella classe o nello struct

  1. Dichiarare un metodo ToString con i modificatori e il tipo restituito seguenti:

    public override string ToString(){}
    
  2. Implementare il metodo in modo che restituisca una stringa.

    Nell'esempio seguente viene restituito il nome della classe insieme ai dati specifici di una determinata istanza della classe.

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

    È possibile testare il metodo ToString come illustrato nell'esempio di codice seguente:

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

Vedere anche

Riferimenti

Classi e struct (Guida per programmatori C#)

string (Riferimenti per C#)

new (Riferimenti per C#)

override (Riferimenti per C#)

virtual (Riferimenti per C#)

Concetti

Guida per programmatori C#

Stringhe (Guida per programmatori C#)