ValueType.ToString Methode
Definitie
Belangrijk
Bepaalde informatie heeft betrekking op een voorlopige productversie die aanzienlijk kan worden gewijzigd voordat deze wordt uitgebracht. Microsoft biedt geen enkele expliciete of impliciete garanties met betrekking tot de informatie die hier wordt verstrekt.
Retourneert de volledig gekwalificeerde typenaam van dit exemplaar.
public:
override System::String ^ ToString();
public override string ToString();
public override string? ToString();
override this.ToString : unit -> string
Public Overrides Function ToString () As String
Retouren
De volledig gekwalificeerde typenaam.
Opmerkingen
De ValueType.ToString methode overschrijft de Object.ToString methode en biedt de standaard implementatie van de ToString methode voor waardetypen. (Waardetypen zijn typen die zijn gedefinieerd door het trefwoord struct in C# en door de Structure... End Structure constructie in Visual Basic.) Functioneel is de implementatie echter hetzelfde als die van Object.ToString: de methode retourneert de volledig gekwalificeerde typenaam.
Waardetypen die zijn gedefinieerd door het trefwoord struct in C# en de Structure... End Structure constructie in Visual Basic overschrijft doorgaans de methode ValueType.ToString om een zinvollere tekenreeksweergave van het waardetype te bieden. In het volgende voorbeeld ziet u het verschil. Er worden twee waardetypen EmployeeA gedefinieerd en EmployeeBer wordt een exemplaar van elke waarde gemaakt en de bijbehorende methode aangeroepen ToString . Omdat de EmployeeA structuur de ValueType.ToString methode niet overschrijft, wordt alleen de volledig gekwalificeerde typenaam weergegeven. De EmployeeB.ToString methode biedt daarentegen zinvolle informatie over het object.
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
Hoewel opsommingstypen ook waardetypen zijn, zijn ze afgeleid van de Enum klasse, die overschrijft ValueType.ToString.
Notities voor Windows Runtime
Wanneer u de methode ToString aanroept in een Windows Runtime-structuur, biedt het standaardgedrag voor waardetypen die ToString niet overschrijven. Dit maakt deel uit van de ondersteuning die .NET biedt voor De Windows Runtime (zie .NET-ondersteuning voor Windows Store-apps en Windows Runtime). Windows Runtime structuren kunnen ToString niet overschrijven, zelfs niet als ze zijn geschreven met C# of Visual Basic, omdat ze geen methoden kunnen hebben. (Bovendien nemen structuren in de Windows Runtime zelf geen ValueType over.) Ze lijken echter ToString, Equals en GetHashCode methoden te hebben wanneer u ze in uw C# of Visual Basic code gebruikt, en .NET biedt het standaardgedrag voor deze methoden.