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

Возвращаемое значение

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
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 Framework для среда выполнения Windows (см. платформа .NET Framework поддержка Windows приложений магазина и среда выполнения Windows). среда выполнения Windows структуры не могут переопределяться ToString , даже если они написаны с помощью C# или Visual Basic, так как они не могут иметь методы. (кроме того, структуры в самом среда выполнения Windows не наследуют ValueType .) однако они выглядят как ToString Equals методы, и GetHashCode при их использовании в коде C# или Visual Basic, а платформа .NET Framework предоставляет поведение по умолчанию для этих методов.

Применяется к