(0) exportieren Drucken
Alle erweitern
Dieser Artikel wurde maschinell übersetzt. Bewegen Sie den Mauszeiger über die Sätze im Artikel, um den Originaltext anzuzeigen. Weitere Informationen
Übersetzung
Original

Object.ToString-Methode

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

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

public virtual string ToString()

Rückgabewert

Typ: System.String
Eine Zeichenfolge, die das aktuelle Objekt darstellt.

ToString ist die Hauptformatierungsmethode in .NET Framework. Ein Objekt wird in seine Zeichenfolgendarstellung konvertiert, damit es für die Anzeige geeignet ist. (Weitere Informationen zur Unterstützung von Formatierung in .NET Framework finden Sie unter Formatierung von Typen.)

Die Standardimplementierung der ToString-Methode gibt den vollqualifizierten Namen des Typs vom Object zurück, wie das folgende Beispiel zeigt.


using System;

public class Example
{
   public static void Main()
   {
      Object obj = new Object();
      Console.WriteLine(obj.ToString());
   }
}
// The example displays the following output:
//      System.Object


Da Object die Basisklasse aller Verweistypen in .NET Framework ist, wird dieses Verhalten von Verweistypen geerbt, die die ToString-Methode nicht überschreiben. Dies wird anhand des folgenden Beispiels veranschaulicht: Eine Klasse mit dem Namen Object1 wird definiert, die die Standardimplementierung aller Object-Member akzeptiert. Die ToString-Methode gibt den vollqualifizierten Typnamen des Objekts zurück.


using System;
using Examples;

namespace Examples
{
   public class Object1
   {
   }
}

public class Example
{
   public static void Main()
   {
      object obj1 = new Object1();
      Console.WriteLine(obj1.ToString());
   }
}
// The example displays the following output:
//   Examples.Object1


Typen überschreiben im Allgemeinen die ToString-Methode, um eine Zeichenfolge zurückzugeben, die die Objektinstanz darstellt. Die Basisdatentypen wie Char implementieren z. B. Int32, und String stellen ToString-Implementierungen bereit, die die Zeichenfolgenform des Werts zurückgeben, den das Objekt darstellt. Im folgenden Beispiel wird die Klasse Object2 definiert, die die ToString-Methode überschreibt, um den Typnamen zusammen mit seinem Wert zurückzugeben.


using System;

public class Object2
{
   private object value;

   public Object2(object value)
   {
      this.value = value;
   }

   public override string ToString()
   {
      return base.ToString() + ": " + value.ToString();
   }
}

public class Example
{
   public static void Main()
   {
      Object2 obj2 = new Object2('a');
      Console.WriteLine(obj2.ToString());
   }
}
// The example displays the following output:
//       Object2: a


Hinweise für Windows-Runtime

Wenn Sie die ToString-Methode für eine Klasse in Windows-Runtime aufrufen, es stellt das Standardverhalten für Klassen, die ToString nicht überschreiben. Dies ist Teil der Unterstützung, die .NET Framework für Windows-Runtime bietet (siehe .NET Framework-Unterstützung für Windows Store-Apps und Windows-Runtime). Klassen in Windows-Runtime erben Object nicht und nicht immer implementieren ToString. jedoch werden sie immer, ToString, Equals(Object) und GetHashCode-Methoden haben, wenn Sie sie im C#- oder Visual Basic-Code verwenden, und .NET Framework stellt ein Standardverhalten für diese Methoden.

Ab .NET Framework 4.5.1, wird IStringable.ToString die Common Language Runtime auf einem Windows-Runtime-Objekt, bevor sie zurück an die Standardimplementierung eines Object.ToString liegt.

HinweisHinweis

Windows-Runtime-Klassen, die in C# oder Visual Basic geschrieben werden, können die ToString-Methode überschreiben.

7bxwbwt2.collapse_all(de-de,VS.110).gifWindows-Runtime und die IStringable-Schnittstelle

Ab Windows 8.1, enthält Windows-Runtime eine IStringable-Schnittstelle ein, deren einzelne Methode IStringable.ToString, die Unterstützung der einfachen Formatierung unterstützt, die vergleichbar ist, die von Object.ToString bereitgestellt wird. Um Mehrdeutigkeit zu verhindern, sollten Sie nicht auf verwaltete Typen implementieren IStringable.

Wenn verwaltete Objekte von systemeigenen Code oder von Code aufgerufen werden, der in Sprachen wie JavaScript oder C++/CX geschrieben ist, scheinen IStringable, die diese implementiert. Die Common Language Runtime leitet automatisch Aufrufe von IStringable.ToStringObject.ToStringIStringable in den Ereignisdaten wird implementiert nicht auf dem verwalteten Objekt weiter.

WarnhinweisVorsicht

Da die Common Language Runtime-AUTOwerkzeuge IStringable für alle verwalteten Typen in Windows Store-Apps, empfohlen, dass Sie Ihre eigene IStringable Implementierung angeben. Das Implementieren IStringable kann unbeabsichtigtes Verhalten, wenn ToString über Windows-Runtime, über C++/CX oder von JavaScript aufgerufen wird.

Wenn Sie festlegen, dass in IStringable einem öffentlichen verwalteten Typ implementieren, der in einer Komponente Windows-Runtime exportiert wird, gelten folgende Beschränkungen:

  • Sie können nur die IStringable-Schnittstelle in einer Klasse definieren "implementieren, z" Beziehung

    public class NewClass : IStringable
    

    in C# oder

    Public Class NewClass : Implements IStringable
    

    in Visual Basic.

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

  • Sie können einen Parameter nicht deklarieren, die dem Typ. IStringable

  • IStringable kann nicht sein Rückgabetyp einer Methode, der Eigenschaft oder des Felds.

  • Sie können die IStringable Implementierung aus Basisklassen nicht ausblenden, indem Sie eine Methodendefinition wie dem Folgenden verwenden:

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

    Stattdessen muss die IStringable.ToString Implementierung die Basisklassenimplementierung immer überschreiben. Sie können eine ToString Implementierung nur ausblenden, indem Sie sie auf einer stark typisierten Klasseninstanz aufrufen.

Beachten Sie das mit einer Reihe von Bedingungen, Aufrufe von systemeigenem Code auf einen verwalteten Typ, der implementiert, IStringable oder aus dessen ToString Implementierung können zu unerwartetem Verhalten führen.

Hinweise zur Vererbung

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

Überschreibungen der ToString-Methode sollten diese Richtlinien befolgen:

  • Die zurückgegebene Zeichenfolge sollte von Menschen benutzerfreundlich und Lesbarkeit sein.

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

  • Die zurückgegebene Zeichenfolge muss so kurz sein, wie möglich, dass es für die Anzeige durch einen Debugger erstellen.

  • Ihre ToString Überschreibung sollte String.Empty oder eine NULL-Zeichenfolge nicht zurückgeben.

  • Ihre ToString Überschreibung sollte keine Ausnahme auslösen.

  • Falls die Zeichenfolgendarstellung einer Instanz ist kulturabhängig oder auf mehrere Arten formatiert werden kann, implementieren Sie die Schnittstelle IFormattable.

  • Wenn die zurückgegebene Zeichenfolge vertrauliche Informationen enthält, sollten Sie erste Eingabeaufforderung eine entsprechende Berechtigung. Wenn die Forderung wird, können Sie die vertraulichen Daten zurückgeben; Andernfalls sollten Sie eine Zeichenfolge zurückgeben, die die Informationen ausschließt.

  • Ihre ToString sollte keine Überschreibung wahrnehmbare Nebeneffekte aufweisen, z von Komplikationen Debugging zu vermeiden. Beispielsweise sollte ein Aufruf der ToString-Methode den Wert von Instanzfeldern nicht ändern.

  • Wenn der Typ eine Analysemethode implementiert (oder Parse oder TryParse-Methode, einem Konstruktor oder eine andere statische Methode, die eine Instanz des Typs von einer Zeichenfolge instanziiert), sollten Sie sicherstellen, dass die Zeichenfolge, die durch die ToString-Methode zurückgegeben wurde, an eine Objektinstanz konvertiert werden kann.

.NET Framework

Unterstützt in: 4.5.2, 4.5.1, 4.5, 4, 3.5, 3.0, 2.0, 1.1, 1.0

.NET Framework Client Profile

Unterstützt in: 4, 3.5 SP1

Portable Klassenbibliothek

Unterstützt in: Portable Klassenbibliothek

.NET für Windows Store-Apps

Unterstützt in: Windows 8

.NET für Windows Phone-Apps

Unterstützt in: Windows Phone 8, Silverlight 8.1

Windows Phone 8.1, Windows Phone 8, Windows 8.1, Windows Server 2012 R2, Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (Server Core-Rolle wird nicht unterstützt), Windows Server 2008 R2 (Server Core-Rolle wird mit SP1 oder höher unterstützt; Itanium wird nicht unterstützt)

.NET Framework unterstützt nicht alle Versionen sämtlicher Plattformen. Eine Liste der unterstützten Versionen finden Sie unter Systemanforderungen für .NET Framework.

Community-Beiträge

HINZUFÜGEN
Anzeigen:
© 2014 Microsoft