Condividi tramite


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

Ogni classe o struct in C# eredita in modo implicito la classe Object. Pertanto, ogni oggetto in C# ottiene il ToString metodo , che restituisce una rappresentazione di stringa di tale oggetto. Ad esempio, tutte le variabili di tipo int hanno un ToString metodo che consente di restituire il contenuto come stringa:

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

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

Per informazioni su come usare stringhe di formato e altri tipi di formattazione personalizzata con il ToString metodo , vedere Formattazione dei tipi.

Importante

Quando si decide quali informazioni fornire tramite questo metodo, valutare se la classe o la struct verranno mai usate dal codice non fidato. Prestare attenzione a assicurarsi di non fornire informazioni che potrebbero essere sfruttate da codice dannoso.

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

  1. Dichiarare un ToString metodo 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 oltre 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 ToString metodo come illustrato nell'esempio di codice seguente:

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

Vedere anche