ValueType.ToString Metod
Definition
Viktigt
En del information gäller för förhandsversionen av en produkt och kan komma att ändras avsevärt innan produkten blir allmänt tillgänglig. Microsoft lämnar inga garantier, uttryckliga eller underförstådda, avseende informationen som visas här.
Returnerar det fullständigt kvalificerade typnamnet för den här instansen.
public:
override System::String ^ ToString();
public override string ToString();
public override string? ToString();
override this.ToString : unit -> string
Public Overrides Function ToString () As String
Returer
Det fullständigt kvalificerade typnamnet.
Kommentarer
Metoden ValueType.ToString åsidosätter Object.ToString metoden och tillhandahåller standardimplementeringen av ToString metoden för värdetyper. (Värdetyper är typer som definieras av nyckelordet struct i C# och av Structure... End Structure konstruktion i Visual Basic.) Funktionellt är implementeringen dock samma som för Object.ToString: metoden returnerar det fullständigt kvalificerade typnamnet.
Värdetyper som definieras av nyckelordet struct i C# och Structure... End Structure i Visual Basic åsidosätter vanligtvis metoden ValueType.ToString för att ge en mer meningsfull strängrepresentation av värdetypen. I följande exempel visas skillnaden. Den definierar två värdetyper och EmployeeAEmployeeB, skapar en instans av var och en och anropar dess ToString metod.
EmployeeA Eftersom strukturen inte åsidosätter ValueType.ToString metoden visas endast det fullständigt kvalificerade typnamnet. Metoden EmployeeB.ToString ger däremot meningsfull information om objektet.
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
Observera att även om uppräkningstyper också är värdetyper härleds de från Enum klassen, som åsidosätter ValueType.ToString.
Anteckningar för Windows Runtime
När du anropar metoden ToString på en Windows Runtime struktur, tillhandahåller den standardbeteendet för värdetyper som inte åsidosätter ToString. Detta är en del av det stöd som .NET tillhandahåller för Windows Runtime (se .NET-stöd för Windows Store-appar och Windows Runtime). Windows Runtime strukturer kan inte åsidosätta ToString, även om de är skrivna med C# eller Visual Basic, eftersom de inte kan ha metoder. (Dessutom ärver inte strukturer i själva Windows Runtime ValueType.) De verkar dock ha ToString, Equals och GetHashCode metoder när du använder dem i C# eller Visual Basic-koden, och .NET tillhandahåller standardbeteendet för dessa metoder.