Gewusst wie: Überschreiben der ToString-Methode (C#-Programmierhandbuch)

In C# erben alle Klassen oder Strukturen implizit die <xref:System.Object>-Klasse. Deshalb erhält jedes Objekt in C# die <xref:System.Object.ToString%2A>-Methode, die eine Zeichenfolgenrepräsentation dieses Objekts zurückgibt. Alle Variablen des Typs int verfügen z.B über eine ToString-Methode, die es ihnen ermöglicht, ihren Inhalt als Zeichenfolge zurückzugeben:

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

Wenn Sie eine benutzerdefinierte Klasse oder Struktur erstellen, sollten Sie die <xref:System.Object.ToString%2A>-Methode außer Kraft setzen, um Informationen zum Typ an den Clientcode bereitzustellen.

Weitere Informationen zum Verwenden von Formatzeichenfolgen und anderen Arten von benutzerdefinierten Formaten mit der ToString-Methode finden Sie unter Formatierung von Typen.

Wichtig

Wenn Sie sich entschieden haben, welche Informationen Sie über diese Methode bereitstellen möchten, beziehen Sie auch mit ein, ob Ihre Klasse oder Struktur von nicht vertrauenswürdigem Code verwendet wird. Achten Sie darauf, dass Sie keine Informationen bereitstellen, die von böswilligem Code ausgenutzt werden könnten.

Außerkraftsetzen der ToString-Methode in Ihrer Klasse oder Struktur

  1. Deklarieren Sie eine ToString-Methode mit folgenden Modifizierern und Rückgabetypen:

    public override string ToString(){}  
    
  2. Implementieren Sie die Methode, sodass sie eine Zeichenfolge zurückgibt.

    Im folgenden Beispiel wird der Name der Klasse neben den für eine bestimmte Instanz der Klasse spezifischen Daten zurückgegeben.

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

    Sie können die ToString-Methode auch wie im folgenden Beispiel gezeigt prüfen:

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

Siehe auch

<xref:System.IFormattable>
C#-Programmierhandbuch
Klassen und Strukturen
Zeichenfolgen
string
new
override
virtual
Formatierung von Typen