ValueType.ToString Método

Definição

Retorna o nome de tipo totalmente qualificado dessa instância.

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

Retornos

O nome de tipo totalmente qualificado.

Comentários

O ValueType.ToString método substitui o Object.ToString método e fornece a implementação padrão do ToString método para tipos de valor. (Tipos de valor são tipos definidos pela palavra-chave struct em C#e pelo Structure... construção End Structure em Visual Basic.) Funcionalmente, no entanto, a implementação é igual à de Object.ToString: o método retorna o nome de tipo totalmente qualificado.

Tipos de valor definidos pela palavra-chave struct em C# e o Structure... End Structure constructo em Visual Basic normalmente substituem o método ValueType.ToString para fornecer uma representação de cadeia de caracteres mais significativa do tipo de valor. O exemplo a seguir ilustra a diferença. Ele define dois tipos EmployeeA de valor e EmployeeBcria uma instância de cada um e chama seu ToString método. Como a EmployeeA estrutura não substitui o ValueType.ToString método, ela exibe apenas o nome de tipo totalmente qualificado. O EmployeeB.ToString método, por outro lado, fornece informações significativas sobre o objeto.

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

Observe que, embora os tipos de enumeração também sejam tipos de valor, eles derivam da classe, que Enum substitui ValueType.ToString.

Anotações para o Windows Runtime

Quando você chama o método ToString em uma estrutura de Windows Runtime, ele fornece o comportamento padrão para tipos de valor que não substituem ToString. Isso faz parte do suporte que o .NET fornece para o Windows Runtime (consulte o suporte do .NET para aplicativos da Windows Store e o Windows Runtime). Windows Runtime estruturas não podem substituir ToString, mesmo que sejam escritas com C# ou Visual Basic, porque não podem ter métodos. (Além disso, as estruturas no próprio Windows Runtime não herdam ValueType).) No entanto, eles parecem ter métodos ToString, Equals e GetHashCode ao usá-los em seu código C# ou Visual Basic e .NET fornece o comportamento padrão para esses métodos.

Aplica-se a