ValueType.ToString Methode
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Gibt den vollqualifizierten Typnamen dieser Instanz zurück.
public:
override System::String ^ ToString();
public override string ToString();
public override string? ToString();
override this.ToString : unit -> string
Public Overrides Function ToString () As String
Gibt zurück
Der vollqualifizierte Typname.
Hinweise
Die ValueType.ToString Methode setzt die Object.ToString Methode außer Kraft und stellt die Standardimplementierung der ToString Methode für Werttypen bereit. (Werttypen sind Typen, die vom Schlüsselwort struct in C# und vom Structure definiert werden... End Structure-Konstrukt in Visual Basic.) Funktionell entspricht die Implementierung jedoch der Object.ToString: Die Methode gibt den vollqualifizierten Typnamen zurück.
Werttypen, die vom Schlüsselwort struct in C# und dem Structure definiert werden... End Structure-Konstrukt in Visual Basic in der Regel die ValueType.ToString-Methode außer Kraft setzen, um eine aussagekräftigere Zeichenfolgendarstellung des Werttyps bereitzustellen. Der Unterschied wird im folgenden Beispiel veranschaulicht. Es definiert zwei Werttypen EmployeeA und EmployeeBerstellt eine Instanz der einzelnen Werte und ruft seine ToString Methode auf. Da die Struktur die EmployeeAValueType.ToString Methode nicht außer Kraft setzt, wird nur der vollqualifizierte Typname angezeigt. Die EmployeeB.ToString Methode stellt andererseits aussagekräftige Informationen über das Objekt bereit.
using System;
using Corporate.EmployeeObjects;
public class Example
{
public static void Main()
{
var empA = new EmployeeA{ Name = "Robert",};
Console.WriteLine(empA.ToString());
var empB = new EmployeeB{ Name = "Robert",};
Console.WriteLine(empB.ToString());
}
}
namespace Corporate.EmployeeObjects
{
public struct EmployeeA
{
public String Name { get; set; }
}
public struct EmployeeB
{
public String Name { get; set; }
public override String ToString()
{
return Name;
}
}
}
// The example displays the following output:
// Corporate.EmployeeObjects.EmployeeA
// Robert
namespace Corporate.EmployeeObjects
[<Struct>]
type EmployeeA =
val mutable Name : string
[<Struct>]
type EmployeeB =
val mutable Name : string
override this.ToString() =
this.Name
module Example =
let empA = EmployeeA(Name="Robert")
printfn $"{empA}"
let empB = EmployeeB(Name="Robert")
printfn $"{empB}"
// The example displays the following output:
// Corporate.EmployeeObjects.EmployeeA
// Robert
Imports Corporate.EmployeeObjects
Module Example
Public Sub Main()
Dim empA As New EmployeeA With { .Name = "Robert" }
Console.WriteLine(empA.ToString())
Dim empB = new EmployeeB With { .Name = "Robert" }
Console.WriteLine(empB.ToString())
End Sub
End Module
Namespace Corporate.EmployeeObjects
Public Structure EmployeeA
Public Property Name As String
End Structure
Public Structure EmployeeB
Public Property Name As String
Public Overrides Function ToString() As String
Return Name
End Function
End Structure
End Namespace
' The example displays the following output:
' Corporate.EmployeeObjects.EmployeeA
' Robert
Beachten Sie, dass Enumerationstypen zwar auch Werttypen sind, sie jedoch von der Enum Klasse abgeleitet sind, die außer Kraft setzt ValueType.ToString.
Hinweise für die Windows-Runtime
Wenn Sie die ToString-Methode für eine Windows-Runtime Struktur aufrufen, stellt sie das Standardverhalten für Werttypen bereit, die ToString nicht außer Kraft setzen. Dies ist Teil der Unterstützung, die .NET für die Windows-Runtime bereitstellt (siehe .NET-Support für Windows Store-Apps und Windows-Runtime). Windows-Runtime Strukturen können ToString nicht außer Kraft setzen, auch wenn sie mit C# oder Visual Basic geschrieben wurden, da sie keine Methoden haben können. (Darüber hinaus erben Strukturen im Windows-Runtime selbst nicht ValueType.) Sie scheinen jedoch ToString, Equals und GetHashCode Methoden zu haben, wenn Sie sie in Ihrem C#- oder Visual Basic-Code verwenden, und .NET stellt das Standardverhalten für diese Methoden bereit.