ValueType.ToString Metoda

Definicja

Zwraca w pełni kwalifikowaną nazwę typu tego wystąpienia.

public:
 override System::String ^ ToString();
public override string ToString ();
public override string? ToString ();
override this.ToString : unit -> string
Public Overrides Function ToString () As String

Zwraca

W pełni kwalifikowana nazwa typu.

Uwagi

Metoda ValueType.ToString zastępuje metodę Object.ToString i udostępnia domyślną implementację ToString metody dla typów wartości. (Typy wartości są typami zdefiniowanymi przez struct słowo kluczowe w języku C#, a także przez konstrukcję Structure...End Structure w Visual Basic). Jednak implementacja funkcjonalnie jest taka sama jak Object.ToStringw przypadku metody : metoda zwraca w pełni kwalifikowaną nazwę typu.

Typy wartości zdefiniowane przez struct słowo kluczowe w języku C# i Structurekonstrukcji ...End Structure w Visual Basic zwykle zastępują ValueType.ToString metodę w celu zapewnienia bardziej znaczącej reprezentacji ciągu typu wartości. Poniższy przykład ilustruje różnicę. Definiuje dwa typy wartości i EmployeeAEmployeeB, tworzy wystąpienie każdego z nich i wywołuje jego ToString metodę. EmployeeA Ponieważ struktura nie zastępuje ValueType.ToString metody, wyświetla tylko w pełni kwalifikowaną nazwę typu. Z EmployeeB.ToString drugiej strony metoda udostępnia istotne informacje o obiekcie.

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

Należy pamiętać, że mimo że typy wyliczenia są również typami wartości, pochodzą one z Enum klasy, która zastępuje ValueType.ToStringwartość .

Uwagi dotyczące środowisko wykonawcze systemu Windows

Wywołanie ToString metody w strukturze środowisko wykonawcze systemu Windows zapewnia domyślne zachowanie typów wartości, które nie zastępują ToStringelementu . Jest to część obsługi zapewnianej przez platformę .NET dla środowisko wykonawcze systemu Windows (zobacz .NET Support for Windows Store Apps and środowisko wykonawcze systemu Windows (Obsługa platformy .NET dla aplikacji ze Sklepu Windows i środowisko wykonawcze systemu Windows). środowisko wykonawcze systemu Windows struktury nie mogą zastąpić ToString, nawet jeśli są napisane w języku C# lub Visual Basic, ponieważ nie mogą mieć metod. (Ponadto struktury w samym środowisko wykonawcze systemu Windows nie dziedziczą ValueType.) Wydaje się ToStringjednak, że metody , Equalsi są GetHashCode używane w kodzie języka C# lub Visual Basic, a platforma .NET zapewnia domyślne zachowanie tych metod.

Dotyczy