ValueType.ToString Metoda
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Vrátí plně kvalifikovaný název typu této instance.
public:
override System::String ^ ToString();
public override string ToString ();
public override string? ToString ();
override this.ToString : unit -> string
Public Overrides Function ToString () As String
Návraty
Plně kvalifikovaný název typu.
Poznámky
Metoda ValueType.ToString přepíše metodu Object.ToString a poskytuje výchozí implementaci ToString
metody pro typy hodnot. (Typy hodnot jsou typy definované klíčovým slovem struct
v jazyce C# a konstruktorem Structure
...End Structure
v jazyce Visual Basic.) Funkčně je však implementace stejná jako Object.ToStringimplementace : metoda vrátí plně kvalifikovaný název typu.
Typy hodnot definované klíčovým slovem struct
v jazyce C# a Structure
konstruktorem ...End Structure
v jazyce Visual Basic obvykle přepíší metodu ValueType.ToString , která poskytuje smysluplnější řetězcovou reprezentaci typu hodnoty. Následující příklad znázorňuje rozdíl. Definuje dva typy EmployeeA
hodnot a EmployeeB
vytvoří instanci každého z nich a volá jeho ToString
metodu. Vzhledem k tomu, že EmployeeA
struktura nepřepíše metodu ValueType.ToString , zobrazí pouze plně kvalifikovaný název typu. Metoda EmployeeB.ToString
na druhé straně poskytuje smysluplné informace o objektu.
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
Všimněte si, že i když jsou typy výčtu také hodnotovými typy, jsou odvozeny od Enum třídy, která přepíše ValueType.ToString.
Poznámky k prostředí Windows Runtime
Když voláte metodu ToString ve struktuře prostředí Windows Runtime, poskytuje výchozí chování pro hodnotové typy, které nepřepíší ToString. Je to součást podpory, kterou rozhraní .NET poskytuje pro prostředí Windows Runtime (viz Podpora rozhraní .NET pro aplikace a prostředí Windows Runtime pro Windows Store). prostředí Windows Runtime struktury nemůžou přepsat ToStringani v případě, že jsou napsané v jazyce C# nebo Visual Basic, protože nemohou mít metody. (Struktury v samotné prostředí Windows Runtime navíc nedědí ValueType.) Při použití v kódu jazyka C# nebo Visual Basic se však zdá, že mají ToStringmetody , EqualsGetHashCode a . NET poskytuje výchozí chování pro tyto metody.