Dieser Artikel wurde maschinell übersetzt. Wenn Sie die englische Version des Artikels anzeigen möchten, aktivieren Sie das Kontrollkästchen Englisch. Sie können den englischen Text auch in einem Popupfenster anzeigen, indem Sie den Mauszeiger über den Text bewegen.
Übersetzung
Englisch

Object::ToString-Methode: ()

 

Veröffentlicht: Oktober 2016

Gibt eine Zeichenfolge zurück, die das aktuelle Objekt darstellt.

Namespace:   System
Assembly:  mscorlib (in mscorlib.dll)

public:
virtual String^ ToString()

Rückgabewert

Type: System::String^

Eine Zeichenfolge, die das aktuelle Objekt darstellt.

Object.ToString wird für die wichtigen Methode in .NET Framework formatieren. Konvertiert ein Objekt in die Zeichenfolgendarstellung damit, für die Anzeige geeignet ist. (Informationen zur Unterstützung von Formatierung in .NET Framework finden Sie unter Formatieren von Typen in .NET Framework.) Standardimplementierungen der die Object.ToString Methode der vollqualifizierte Name, der den Typ des Objekts zurück.

System_CAPS_importantWichtig

Sie können auf diese Seite gelangt, über den Link in der Memberliste aus eines anderen Typs. Das liegt daran, Typ nicht außer Kraft setzt Object.ToString. Stattdessen erbt es die Funktionalität der Object.ToString Methode.

Typen, die häufig überschreiben die Object.ToString Methode, um einen geeigneteren Darstellung eines bestimmten Typs bereitzustellen. Typen auch häufig überladen der Object.ToString Methode, um die Formatzeichenfolgen oder kulturabhängige Formatierung zu unterstützen.

In diesem Abschnitt

Die Standard-Object.ToString()-Methode
Überschreiben die Object.ToString()-Methode
Überladen die ToString-Methode
Erweitern Sie die Object.ToString-Methode
Hinweise für die Windows-Runtime

Die standardmäßige Implementierung der die ToString -Methode gibt den vollqualifizierten Namen des Typs der Object, wie das folgende Beispiel zeigt.

using namespace System;

void main()
{
   Object^ obj = gcnew Object();
   Console::WriteLine(obj->ToString());
}
// The example displays the following output:
//      System.Object

Da Object ist die Basisklasse aller Verweistypen in .NET Framework wird dieses Verhalten von Verweistypen, die keine überschreiben geerbt die ToString Methode. Dies wird anhand des folgenden Beispiels veranschaulicht. Definiert eine Klasse namens Object1 akzeptiert die standardmäßige Implementierung aller Object Elemente. Die ToString -Methode gibt den vollqualifizierten Typnamen des Objekts zurück.

using namespace System;

namespace Examples
{
   ref class Object1
   {
   };
}

void main()
{
   Object^ obj1 = gcnew Examples::Object1();
   Console::WriteLine(obj1->ToString());
}
// The example displays the following output:
//   Examples.Object1

Typen überschreiben im Allgemeinen die Object.ToString -Methode gibt eine Zeichenfolge zurück, die die Objektinstanz darstellt. Beispielsweise Basistypen wie z. B. Char, Int32, und String bieten ToString Implementierungen, die die Zeichenfolgenform des Werts zurückzugeben, das das Objekt darstellt. Das folgende Beispiel definiert eine Klasse, Object2, überschreibt die ToString Methode, um den Typnamen zusammen mit dem Wert zurückzugeben.

using namespace System;

ref class Object2
{
   private:
      Object^ value;

   public:
      Object2(Object^ value)
      {
         this->value = value;
      }

      virtual String^ ToString() override
      {
         return Object::ToString() + ": " + value->ToString();
      }
};

void main()
{
   Object2^ obj2 = gcnew Object2(L'a');
   Console::WriteLine(obj2->ToString());

}
// The example displays the following output:
//       Object2: a

In der folgenden Tabelle werden die Kategorien in .NET Framework aufgelistet, und gibt an, ob sie überschreiben die Object.ToString Methode.

Kategorie

Object.ToString() überschreibt

Verhalten

class

nicht verfügbar

nicht verfügbar

Struktur

Ja (ValueType::ToString)

Identisch mit Object.ToString()

Enumeration

Ja (Enum::ToString())

Der Membername

interface

Nein

nicht verfügbar

delegate

Nein

nicht verfügbar

Finden Sie unter Hinweise für erben-Abschnitt, um weitere Informationen zum Überschreiben ToString.

Zusätzlich zum Überschreiben der parameterlosen Object.ToString() Methode überladen, viele Arten der ToString Methode, um Versionen der Methode bereitzustellen, die Parameter akzeptieren. In den meisten Fällen wird dies durchgeführt, um Variablen und kulturabhängige Formatierung unterstützen.

Das folgende Beispiel Überladungen der ToString Methode, um eine Ergebniszeichenfolge zurückzugeben, die den Wert verschiedener Felder dieses enthält eine Automobile Klasse. Es werden vier Formatzeichenfolgen definiert: G, die den Modellnamen und Jahr zurückgibt D, der Name des Modells, Jahr und Anzahl der Türen zurückgibt; C, der Name des Modells, Jahr und die Anzahl der Zylinder zurückgibt; und ein, die eine Zeichenfolge mit allen vier Werte zurückgibt.

Derzeit ist kein Code Beispiel verfügbar, oder die Sprache wird nicht unterstützt.

Das folgende Beispiel ruft den überladenen Decimal::ToString(String^, IFormatProvider^) Methode, um kulturabhängige Formatierung, der einen Währungswert anzuzeigen.

Derzeit ist kein Code Beispiel verfügbar, oder die Sprache wird nicht unterstützt.

Weitere Informationen zu Formatzeichenfolgen und kulturabhängige Formatierung, finden Sie unter Formatieren von Typen in .NET Framework. Die Formatzeichenfolgen durch numerische Werte unterstützt, finden Sie unter Standard Numeric Format Strings und benutzerdefinierte Zahlenformatzeichenfolgen. Die Formatzeichenfolgen von Datums-und Uhrzeitwerte unterstützt werden, finden Sie unter Standardformatbezeichner für Datum und Uhrzeit-Formatzeichenfolgen und benutzerdefinierte Datums- und Uhrzeit-Formatzeichenfolgen.

Da die Standardeinstellung erbt Object.ToString -Methode, die Sie sein Verhalten unerwünschten Suchen und ändern können. Dies gilt insbesondere für Arrays und Klassen. Während Sie erwarten, dass möglicherweise die ToString Methode ein Array oder eine Auflistung der Klasse zur Anzeige der Werte von Membern, zeigt es stattdessen der vollqualifizierte Typname, wie im folgenden Beispiel gezeigt.

Derzeit ist kein Code Beispiel verfügbar, oder die Sprache wird nicht unterstützt.

Sie haben mehrere Optionen für die resultierende Zeichenfolge zu erzeugen, die Sie möchten.

  • Wenn der Typ ein Array, ein Auflistungsobjekt oder ein Objekt, das implementiert die IEnumerable oder IEnumerable<T> Schnittstellen, können Sie die Elemente mit Auflisten der foreach -Anweisung in c# oder die For Each...Next -Konstrukts in Visual Basic.

  • Wenn die Klasse nicht sealed (in c#) oder NotInheritable (in Visual Basic), können Sie eine Wrapperklasse, die von der Basisklasse, deren erbt entwickeln Object.ToString Methode, die Sie anpassen möchten. Zumindest erfordert dies, dass Sie die folgenden Schritte ausführen:

    1. Implementieren Sie alle erforderlichen Konstruktoren. Abgeleitete Klassen erben nicht die Konstruktoren ihrer Basisklasse.

    2. Überschreiben Sie die Object.ToString Methode, um die resultierende Zeichenfolge zurückzugeben, die Sie möchten.

    Das folgende Beispiel definiert eine Wrapperklasse für die List<T> Klasse. Es überschreibt die Object.ToString Methode, um den Wert der einzelnen Methoden der Auflistung statt auf den vollqualifizierten Typnamen anzuzeigen.

    Derzeit ist kein Code Beispiel verfügbar, oder die Sprache wird nicht unterstützt.
  • Entwickeln einer Erweiterungsmethode die die Ergebniszeichenfolge die gewünschte zurückgibt. Beachten Sie, dass Sie die Standardeinstellung außer Kraft setzen können nicht Object.ToString Methode auf diese Weise (d. h. der Erweiterungsklasse (in c#) oder dem Modul (in Visual Basic) keine parameterlose Methode namens ToString die anstelle des ursprünglichen Typs aufgerufen ToString Methode. Sie müssen einen anderen Namen für Ihre parameterlosen bieten ToString ersetzt.

    Das folgende Beispiel definiert zwei Methoden, Erweitern der List<T> Klasse: eine parameterlose ToString2 -Methode, und eine ToString -Methode mit einer String Parameter, der eine Zeichenfolge darstellt.

    Derzeit ist kein Code Beispiel verfügbar, oder die Sprache wird nicht unterstützt.

Beim Aufrufen der ToString Methode einer Klasse in der Windows-Runtime, es ist das Standardverhalten für Klassen, die nicht außer Kraft setzen ToString. Dies ist Teil der Unterstützung von .NET Framework für die Windows-Runtime (siehe .NET Framework-Unterstützung für Windows Store-Apps und Windows-Runtime). Klassen in der Windows-Runtime erben nicht Object, und implementieren nicht immer eine ToString. Allerdings immer erscheinen haben ToString, Equals(Object^), und GetHashCode Methoden, wenn Sie diese C#- oder Visual Basic-Code verwenden und .NET Framework ein Standardverhalten für diese Methoden bietet.

Beginnend mit der .NET Framework 4.5.1, verwendet die common Language Runtime IStringable.ToString auf ein Windows-Runtime Objekt vor dem Fallback auf die standardmäßige Implementierung des Object.ToString.

System_CAPS_noteHinweis

Windows-Runtime in c# oder Visual Basic geschrieben sind Klassen können überschreiben die ToString Methode.

Beginnend mit Windows 8.1, die Windows-Runtime enthält ein IStringable Schnittstelle, deren einzige Methode, IStringable.ToString, eine grundlegende formatierungsunterstützung vergleichbar mit bietet Object.ToString. Sie sollten nicht implementieren, um Mehrdeutigkeit zu vermeiden, IStringable auf verwalteten Typen.

Wenn verwaltete Objekte aufgerufen werden, von systemeigenem Code oder von Code in Sprachen wie JavaScript oder C++ / CX, sie implementieren scheinbar IStringable. Die common Language Runtime leitet automatisch Anrufe von IStringable.ToString auf Object.ToString im IStringable nicht auf das verwaltete Objekt implementiert wird.

System_CAPS_warningWarnung

Da die common Language Runtime automatisch-implementiert IStringable für alle verwalteten Typen in Windows Store apps, es wird empfohlen, dass Sie keine eigene bieten IStringable Implementierung. Implementierung IStringable möglicherweise unerwartetem Verhalten beim Aufruf von ToString aus der Windows-Runtime, C++ / CX oder JavaScript.

Wenn Sie sich entscheiden, implementieren IStringable in einem öffentlichen verwalteten Typ, der im exportiert wird eine Windows-Runtime -Komponente, die folgenden Einschränkungen gelten:

  • Sie können definieren, die IStringable Schnittstelle nur in einer "class Implements"-Beziehung wie

    public class NewClass : IStringable
    

    in C# oder

    Public Class NewClass : Implements IStringable
    

    in Visual Basic.

  • Sie können nicht implementieren IStringable auf einer Schnittstelle.

  • Einen Parameter des Typs kann nicht deklariert werden IStringable.

  • IStringable der Rückgabetyp einer Methode, Eigenschaft oder das Feld darf nicht sein werden.

  • Kann nicht ausgeblendet werden Ihre IStringable Implementierung von Basisklassen eine Methodendefinition wie die folgende verwenden:

    
    public class NewClass : IStringable
    {
       public new string ToString()
       {
          return "New ToString in NewClass";
       }
    }
    
    

    In diesem Fall die IStringable.ToString Implementierung muss immer Implementierung der Basisklasse überschreiben. Sie können eine ToString-Implementierung nur ausblenden, indem Sie sie auf einer stark typisierten Klasseninstanz aufrufen.

Beachten Sie, die unter verschiedenen Umständen Aufrufe von systemeigenem Code in einen verwalteten Typ, der implementiert IStringable oder blendet Sie aus der ToString Implementierung kann zu unerwartetem Verhalten führen.

Hinweise für Vererber:

Wenn Sie Ihre eigenen Typen implementieren, sollten Sie überschreiben die ToString Methode, um Werte zurückzugeben, die für diese Typen aussagekräftig sind. Abgeleitete Klassen, die mehr Kontrolle über die Formatierung als erfordern ToString bietet können implementieren die IFormattable Schnittstelle. Die IFormattable::ToString(String^, IFormatProvider^) Methode ermöglicht es Ihnen, Formatzeichenfolgen zu definieren, die Formatierung steuern und verwenden Sie ein IFormatProvider -Objekt, das für die kulturspezifische Formatierung bereitstellen kann.

Der überschreibt die ToString Methode sollte die folgenden Richtlinien:

  • Die zurückgegebene Zeichenfolge muss es sich um benutzerfreundliche und von Menschen lesbar sein.

  • Die zurückgegebene Zeichenfolge muss den Wert der Objektinstanz eindeutig identifizieren.

  • Die zurückgegebene Zeichenfolge sollte so kurz wie möglich erfolgen, sodass es für die Anzeige von einem Debugger geeignet ist.

  • Die ToString Überschreiben sollten nicht zurückgegeben werden String::Empty oder eine null-Zeichenfolge.

  • Die ToString überschreiben sollte keine Ausnahme ausgelöst.

  • Wenn die Darstellung einer Instanz kulturabhängig ist oder auf verschiedene Weise formatiert werden kann, implementieren Sie die IFormattable Schnittstelle.

  • Wenn die zurückgegebene Zeichenfolge vertrauliche Informationen enthält, sollte Sie zuerst eine entsprechende Berechtigung anfordern. Wenn die Anforderung erfolgreich ist, können Sie die vertrauliche Informationen zurück. Andernfalls sollten Sie eine Zeichenfolge zurückgeben, die vertrauliche Informationen ausschließt.

  • Ihre ToString außer Kraft setzen müssen keine wahrnehmbaren Nebeneffekte, die beim Debuggen zu vermeiden. Z. B. einen Aufruf der ToString Methode sollte den Wert der Instanzfelder nicht ändern.

  • Wenn der Typ eine Analysemethode implementiert (oder Parse oder TryParse -Methode, einen Konstruktor oder eine andere statische Methode, die eine Instanz des Typs aus einer Zeichenfolge instanziiert), Sie sollten sicherstellen, dass die zurückgegebene Zeichenfolge den ToString Methode einer Objektinstanz konvertiert werden kann.

Universelle Windows-Plattform
Verfügbar seit 8
.NET Framework
Verfügbar seit 1.1
Portierbare Klassenbibliothek
Unterstützt in: portierbare .NET-Plattformen
Silverlight
Verfügbar seit 2.0
Windows Phone Silverlight
Verfügbar seit 7.0
Windows Phone
Verfügbar seit 8.1
Zurück zum Anfang
Anzeigen: