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

Alle Klassen oder Strukturen in C# erben implizit die Object-Klasse. Alle Objekte in C# rufen daher die ToString-Methode ab, die eine Zeichenfolgendarstellung des Objekts zurückgibt. Zum Beispiel verfügen alle Variablen des int-Typs über eine ToString-Methode, mit der ihr Inhalt als Zeichenfolge zurückgegeben werden kann:

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

Wenn Sie eine benutzerdefinierte Klasse oder Struktur erstellen, sollten Sie die ToString-Methode überschreiben, um dem Clientcode Informationen über den Typ bereitzustellen.

SicherheitshinweisSicherheitshinweis

Bei der Entscheidung, welche Informationen über diese Methode bereitgestellt werden, sollten Sie berücksichtigen, ob die Klasse oder Struktur möglicherweise einmal von nicht vertrauenswürdigem Code verwendet wird. Stellen Sie keine Informationen bereit, die von bösartigem Code genutzt werden könnten.

So überschreiben Sie die ToString-Methode in der Klasse oder Struktur

  1. Deklarieren Sie eine ToString-Methode mit den folgenden Modifizierern und folgendem Rückgabetyp:

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

    Das folgende Codebeispiel gibt nicht nur den Namen der Klasse zurück, sondern auch die Daten für eine bestimmte Instanz der Klasse.

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

    Im folgenden Codebeispiel wird die Verwendung der ToString-Methode veranschaulicht.

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

Siehe auch

Referenz

Klassen und Strukturen (C#-Programmierhandbuch)

Zeichenfolgen (C#-Programmierhandbuch)

string (C#-Referenz)

new (C#-Referenz)

override (C#-Referenz)

virtual (C#-Referenz)

Konzepte

C#-Programmierhandbuch