ValueType.ToString Método
Definição
Importante
Algumas informações dizem respeito a um produto pré-lançado que pode ser substancialmente modificado antes de ser lançado. A Microsoft não faz garantias, de forma expressa ou implícita, em relação à informação aqui apresentada.
Devolve o nome do tipo totalmente qualificado desta 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
Devoluções
O nome de tipo totalmente qualificado.
Observações
O ValueType.ToString método sobrepõe-se ao Object.ToString método e fornece a implementação padrão do ToString método para os tipos de valor. (Os tipos de valor são tipos definidos pela palavra-chave
Tipos de valor definidos pela palavra-chave struct em C# e pela Structure... End Structure construto em Visual Basic normalmente sobrepõem o método ValueType.ToString para fornecer uma representação de cadeia mais significativa do tipo de valor. O exemplo a seguir ilustra a diferença. Define dois tipos de valor, EmployeeA e EmployeeB, cria uma instância de cada um, e chama o seu ToString método. Como a EmployeeA estrutura não sobrepõe o ValueType.ToString método, apresenta apenas o nome do tipo totalmente qualificado. O EmployeeB.ToString método, por outro lado, fornece informação significativa 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
Note-se que, embora os tipos de enumeração também sejam tipos de valor, derivam da Enum classe que sobrepõe ValueType.ToString.
Notas para o Tempo de Execução do Windows
Quando chamas o método ToString numa estrutura Windows Runtime, ele fornece o comportamento padrão para tipos de valor que não sobrescrevem ToString. Isso faz parte do suporte que o .NET fornece para o Windows Runtime (consulte Suporte do .NET para aplicações da Windows Store epara o Windows Runtime). Windows Runtime estruturas não podem sobrescrever 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, parecem ter métodos ToString, Equals e GetHashCode quando os usa no seu código C# ou Visual Basic, e .NET fornece o comportamento padrão para esses métodos.