ValueType.ToString Metode

Definisi

Mengembalikan nama jenis instans ini yang sepenuhnya memenuhi syarat.

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

Mengembalikan

Nama jenis yang sepenuhnya memenuhi syarat.

Keterangan

Metode ini ValueType.ToString mengambil alih Object.ToString metode dan menyediakan implementasi ToString default metode untuk jenis nilai. (Jenis nilai adalah jenis yang ditentukan oleh struct kata kunci di C#, dan oleh Structurekonstruksi ...End Structure di Visual Basic.) Namun, secara fungsional, implementasinya sama Object.ToStringdengan : metode mengembalikan nama jenis yang sepenuhnya memenuhi syarat.

Jenis nilai yang ditentukan oleh struct kata kunci dalam C# dan Structurekonstruksi ...End Structure di Visual Basic biasanya mengambil alih ValueType.ToString metode untuk memberikan representasi string yang lebih bermakna dari jenis nilai. Contoh berikut mengilustrasikan perbedaannya. Ini mendefinisikan dua jenis nilai, EmployeeA dan EmployeeB, membuat instans masing-masing, dan memanggil metodenya ToString . EmployeeA Karena struktur tidak mengambil alih ValueType.ToString metode, struktur hanya menampilkan nama jenis yang sepenuhnya memenuhi syarat. Metode ini EmployeeB.ToString , di sisi lain, memberikan informasi yang bermakna tentang objek .

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

Perhatikan bahwa, meskipun jenis enumerasi juga merupakan jenis nilai, jenis tersebut Enum berasal dari kelas , yang mengambil alih ValueType.ToString.

Catatan untuk Windows Runtime

Ketika Anda memanggil ToString metode pada struktur Windows Runtime, metode ini menyediakan perilaku default untuk jenis nilai yang tidak mengambil alih ToString. Ini adalah bagian dari dukungan yang disediakan .NET untuk Windows Runtime (lihat Dukungan .NET untuk Aplikasi Windows Store dan Windows Runtime). Struktur Windows Runtime tidak dapat mengambil alih ToString, meskipun ditulis dengan C# atau Visual Basic, karena tidak dapat memiliki metode. (Selain itu, struktur dalam Windows Runtime itu sendiri tidak mewarisi ValueType.) Namun, mereka tampaknya memiliki ToStringmetode , Equals, dan GetHashCode ketika Anda menggunakannya dalam kode C# atau Visual Basic Anda, dan .NET menyediakan perilaku default untuk metode ini.

Berlaku untuk