ValueType.ToString Metoda

Definice

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 Structure... End Structure konstruktor v Visual Basic.) Funkčně však implementace je stejná jako Object.ToString: metoda vrátí plně kvalifikovaný název typu.

Typy hodnot definované klíčovým slovem struct v jazyce C# a Structure... End Structure konstruktor v Visual Basic obvykle přepsat metodu ValueType.ToString tak, aby poskytovala smysluplnější řetězcové znázornění typu hodnoty. Následující příklad znázorňuje rozdíl. Definuje dva typy EmployeeA hodnot a EmployeeB, vytvoří instanci každého 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é typy, jsou odvozeny od Enum třídy, která přepisuje ValueType.ToString.

Poznámky k prostředí prostředí Windows Runtime

Při volání metody ToString ve struktuře prostředí Windows Runtime poskytuje výchozí chování pro typy hodnot, které nepřepíší ToString. Toto je součástí podpory, kterou .NET poskytuje pro prostředí prostředí Windows Runtime (viz podpora aplikací pro Windows Store a prostředí prostředí Windows Runtime). prostředí Windows Runtime struktury nemohou přepsat ToString, i když jsou napsané pomocí jazyka C# nebo Visual Basic, protože nemohou mít metody. (Kromě toho struktury v samotném prostředí Windows Runtime nedědí ValueType.) Zdá se však, že mají metody ToString, Equals a GetHashCode při jejich použití v kódu C# nebo Visual Basic a .NET poskytuje výchozí chování těchto metod.

Platí pro