ValueType.ToString Yöntem

Tanım

Bu örneğin tam tür adını döndürür.

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

Döndürülenler

Tam tür adı.

Açıklamalar

ValueType.ToString yöntemi yöntemini geçersiz kılar Object.ToString ve değer türleri için yönteminin ToString varsayılan uygulamasını sağlar. (Değer türleri, C# dilinde anahtar struct sözcüğü ve Visual Basic'teki ...End Structure yapısı tarafından Structuretanımlanan türlerdir.) Ancak işlevsel olarak, uygulama ile aynıdırObject.ToString: yöntemi tam tür adını döndürür.

C# dilinde anahtar sözcük tarafından struct tanımlanan değer türleri ve StructureVisual Basic'teki ...End Structure yapısı genellikle yöntemi geçersiz kılarak ValueType.ToString değer türünün daha anlamlı bir dize gösterimini sağlar. Aşağıdaki örnekte fark gösterilmektedir. İki değer türü EmployeeA tanımlar ve EmployeeBher birinin bir örneğini oluşturur ve yöntemini çağırır ToString . EmployeeA Yapı yöntemi geçersiz kılmadığındanValueType.ToString, yalnızca tam tür adını görüntüler. EmployeeB.ToString Yöntemi ise nesne hakkında anlamlı bilgiler sağlar.

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

Numaralandırma türlerinin de değer türleri olmasına rağmen, öğesini geçersiz kılan ValueType.ToStringsınıfından Enum türetildiğini unutmayın.

Windows Çalışma Zamanı notları

yöntemini bir Windows Çalışma Zamanı yapısında çağırdığınızdaToString, geçersiz kılmaz ToStringdeğer türleri için varsayılan davranışı sağlar. Bu, .NET'in Windows Çalışma Zamanı için sağladığı desteğin bir parçasıdır (bkz. Windows Mağazası Uygulamaları ve Windows Çalışma Zamanı için .NET Desteği). Windows Çalışma Zamanı yapıları C# veya Visual Basic ile yazılmış olsalar bile geçersiz kılamazToString, çünkü yöntemleri yoktur. (Ayrıca, Windows Çalışma Zamanı içindeki yapılar devralmazValueType.) Ancak, C# veya Visual Basic kodunuzda kullandığınızda , Equalsve GetHashCode yöntemlerine sahip ToStringgibi görünürler ve .NET bu yöntemler için varsayılan davranışı sağlar.

Şunlara uygulanır