ValueType.ToString Yöntem
Tanım
Önemli
Bazı bilgiler ürünün ön sürümüyle ilgilidir ve sürüm öncesinde önemli değişiklikler yapılmış olabilir. Burada verilen bilgilerle ilgili olarak Microsoft açık veya zımni hiçbir garanti vermez.
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 Structure
tanı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 Structure
Visual 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 EmployeeB
her 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.