ValueType.ToString Método
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
Retorna o nome do 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 pelo struct
palavra-chave em C#, e pelo Structure
...End Structure
constructo no 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 pelo struct
palavra-chave em C# e o Structure
constructo ...End Structure
no Visual Basic normalmente substituem o ValueType.ToString método 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 de valor, EmployeeA
e EmployeeB
, cria uma instância de cada 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 Enum classe , que substitui ValueType.ToString.
Notas para o Windows Runtime
Quando você chama o ToString método em uma estrutura 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 Suporte do .NET para aplicativos da Windows Store e 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 ToStringmétodos , Equalse GetHashCode quando você os usa em seu código C# ou Visual Basic, e o .NET fornece o comportamento padrão para esses métodos.