ValueType.ToString Метод
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Возвращает полное имя типа этого экземпляра.
public:
override System::String ^ ToString();
public override string ToString ();
public override string? ToString ();
override this.ToString : unit -> string
Public Overrides Function ToString () As String
Возвращаемое значение
Полное имя типа.
Комментарии
Метод ValueType.ToString переопределяет Object.ToString метод и предоставляет реализацию метода по умолчанию для типов значений ToString
. (Типы значений — это типы, struct
определенные ключевое слово в C# и по Structure
...End Structure
конструктор в Visual Basic.) Однако с функциональной стороны реализация аналогична Object.ToStringреализации метода : метод возвращает полное имя типа.
Типы значений struct
, определяемые ключевое слово в C# и Structure
конструкцией ...End Structure
в Visual Basic, обычно переопределяют ValueType.ToString метод для предоставления более понятного строкового представления типа значения. В следующем примере демонстрируется это различие. Он определяет два типа значений, EmployeeA
и EmployeeB
, создает экземпляр каждого из них и вызывает его ToString
метод.
EmployeeA
Так как структура не переопределяет ValueType.ToString метод, отображается только полное имя типа. Метод EmployeeB.ToString
, с другой стороны, предоставляет значимые сведения об объекте .
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
Обратите внимание, что, хотя типы перечисления также являются типами значений, они являются производными Enum от класса , который переопределяет ValueType.ToString.
Примечания для среда выполнения Windows
При вызове ToString метода для структуры среда выполнения Windows он обеспечивает поведение по умолчанию для типов значений, которые не переопределяют ToString. Это часть поддержки, которую предоставляет .NET для среда выполнения Windows (см. раздел Поддержка .NET для приложений Магазина Windows и среда выполнения Windows). среда выполнения Windows структуры не могут переопределять ToString, даже если они написаны на C# или Visual Basic, так как они не могут иметь методов. (Кроме того, структуры в среда выполнения Windows сами по себе не наследуют ValueType.) Однако при их использовании в коде C# или Visual Basic они имеют ToStringметоды , Equalsи GetHashCode , а .NET обеспечивает поведение по умолчанию для этих методов.