Exportar (0) Imprimir
Expandir Tudo
Este artigo foi traduzido por máquina. Coloque o ponteiro do mouse sobre as frases do artigo para ver o texto original. Mais informações.
Tradução
Original

Método Object.ToString

Retorna uma string que representa o objeto atual.

Namespace:  System
Assembly:  mscorlib (em mscorlib.dll)

public virtual string ToString()

Valor de retorno

Tipo: System.String
Uma cadeia de caracteres que representa o objeto atual.

ToString é o principal método de formatação no.NET Framework. Converte um objeto em sua representação de cadeia de caracteres de modo adequado para exibição. (Para obter informações sobre suporte de formatação no .NET Framework, consulte Formatando tipos.)

A implementação padrão do método de ToString retorna o nome totalmente qualificado do tipo de Object, conforme mostrado no exemplo a seguir.


using System;

public class Example
{
   public static void Main()
   {
      Object obj = new Object();
      Console.WriteLine(obj.ToString());
   }
}
// The example displays the following output:
//      System.Object


Como Object é a classe base de qualquer referência no .NET Framework, esse comportamento é herdada pelos tipos de referência que não substitui o método de ToString . O Exemplo a seguir ilustra isso.
Define uma classe chamada Object1 que aceita a implementação padrão de todos os membros de Object . O método de ToString retorna o nome totalmente qualificado do tipo de objeto.


using System;
using Examples;

namespace Examples
{
   public class Object1
   {
   }
}

public class Example
{
   public static void Main()
   {
      object obj1 = new Object1();
      Console.WriteLine(obj1.ToString());
   }
}
// The example displays the following output:
//   Examples.Object1


Os tipos substituem geralmente o método de ToString para retornar uma cadeia de caracteres que representa a instância do objeto. Por exemplo, os tipos de base como Char, Int32, e String fornecem as implementações de ToString que retornam o formato de cadeia de caracteres do valor representado pelo objeto. O exemplo a seguir define uma classe, Object2, que substitui o método ToString para retornar o nome do tipo juntamente com o valor.


using System;

public class Object2
{
   private object value;

   public Object2(object value)
   {
      this.value = value;
   }

   public override string ToString()
   {
      return base.ToString() + ": " + value.ToString();
   }
}

public class Example
{
   public static void Main()
   {
      Object2 obj2 = new Object2('a');
      Console.WriteLine(obj2.ToString());
   }
}
// The example displays the following output:
//       Object2: a


Observações para o Tempo de Execução do Windows

Quando você chama o método de ToString em uma classe em Tempo de Execução do Windows, fornece o comportamento padrão para classes que não substitui ToString. Ele faz parte do suporte que o .NET Framework dá para o Tempo de Execução do Windows (consulte Suporte do .NET Framework para aplicativos da Windows Store e Tempo de Execução do Windows). As classes em Tempo de Execução do Windows não herdam Object, e não implementam sempre ToString. No entanto, aparecem para ter sempre ToString, Equals(Object), e os métodos de GetHashCode quando devem ser usados em seu código C# ou Visual Basic, e o.NET Framework fornece um comportamento padrão para esses métodos.

A partir .NET Framework 4.5.1, Common Language Runtime usará IStringable.ToString em um objeto de Tempo de Execução do Windows antes de parada de volta para a implementação padrão de Object.ToString.

ObservaçãoObservação

as classes deTempo de Execução do Windows que são gravadas em C# ou no Visual Basic podem substituir o método de ToString .

7bxwbwt2.collapse_all(pt-br,VS.110).gifO Tempo de Execução do Windows e a interface de IStringable

A partir Windows 8.1, Tempo de Execução do Windows inclui IStringable uma interface cujo único método IStringable.ToString, fornece suporte básico de formatação comparável ao fornecido por Object.ToString. Para evitar a ambiguidade, você não deve implementar IStringable em tipos gerenciados.

Quando os objetos gerenciados são chamados pelo código nativo ou pelo código escrito em linguagens como JavaScript ou C++/CX, aparecem para implementar IStringable. Common Language Runtime roteará automaticamente chamadas IStringable.ToString a Object.ToString no evento IStringable não é implementada no objeto gerenciado.

Observação de cuidadoCuidado

Como os automática ferramentas de Common IStringable Language Runtime para qualquer gerenciado em aplicativos de Windows Store , recomendamos que você não fornece sua própria IStringable implementação. Implementar IStringable pode resultar em comportamento não intencionais ao chamar ToString de Tempo de Execução do Windows, de C++/CX, ou de JavaScript.

Se você optar por IStringable implementar em um tipo gerenciado utilitário que foi exportado em um componente de Tempo de Execução do Windows , as seguintes restrições se aplicam:

  • Você pode definir IStringable a interface somente em uma “classe implementa a relação, como”

    public class NewClass : IStringable
    

    no C#, ou

    Public Class NewClass : Implements IStringable
    

    no Visual Basic.

  • Você não pode implementar IStringable em uma interface.

  • Você não pode declarar um parâmetro do tipo IStringable.

  • IStringable não pode ser o tipo de retorno de um método, uma propriedade, ou campo.

  • Você não pode ocultar sua IStringable implementação das classes base usando uma definição do método como o seguinte:

    
    public class NewClass : IStringable
    {
       public new string ToString()
       {
          return "New ToString in NewClass";
       }
    }
    
    

    Em vez disso, IStringable.ToString a implementação sempre deve substituir a implementação da classe base. Você pode ocultar uma implementação de ToString somente ao invocar a em uma instância da classe com rigidez de tipos.

Observe que em várias condições, chamadas de código nativo para um tipo gerenciado que implementa IStringable os ou oculta sua ToString implementação podem gerar comportamento inesperado.

Observações para herdeiros

Ao implementar seus próprios tipos, você deve substituir o método ToString para retornar valores que sejam significativos para esses tipos. As classes derivadas que exigem mais controle sobre a formatação do que fornecem ToString podem implementar a interface de IFormattable . O método de IFormattable.ToString(String, IFormatProvider) permite definir as cadeias de formato que controlam a formatação e para usar um objeto de IFormatProvider que pode fornecer para formatação a cultura específica.

As substituições do método de ToString devem seguir estas diretrizes:

  • A cadeia de caracteres retornada deve ser amigável e legível por seres humanos.

  • A cadeia de caracteres retornada deve identificar o valor da instância do objeto.

  • A cadeia de caracteres retornada deve ser o mais curta possível de modo adequado para exibição por um depurador.

  • A substituição de ToString não deve retornar String.Empty ou uma cadeia de caracteres nula.

  • A substituição de ToString não deve gerar uma exceção.

  • Se a representação de cadeia de caracteres de uma instância é confidencial ou cultura pode ser formatada em vários modos, implementar a interface de IFormattable .

  • Se a cadeia de caracteres retornado inclui informações confidenciais, você deve primeiro exigir uma permissão apropriada. Se a demanda tiver êxito, você pode retornar informações confidenciais; caso contrário, você deve retornar uma cadeia de caracteres que exclui informações confidenciais.

  • A substituição de ToString não deve ter nenhum efeito colateral observável para evitar complicações na depuração. Por exemplo, uma chamada ao método de ToString não deve alterar o valor de campos da instância.

  • Se seu tipo implementa um método de análise (ou Parse ou método de TryParse , um construtor, ou qualquer outro método estático que cria uma instância do tipo de uma cadeia de caracteres), você deve assegurar que a cadeia de caracteres retornada pelo método de ToString pode ser convertida em uma instância do objeto.

.NET Framework

Com suporte em: 4.5.2, 4.5.1, 4.5, 4, 3.5, 3.0, 2.0, 1.1, 1.0

.NET Framework Client Profile

Com suporte em: 4, 3.5 SP1

Biblioteca de Classes Portátil

Com suporte em: Biblioteca de Classes Portátil

.NET para aplicativos da Windows Store

Com suporte em: Windows 8

.NET para aplicativos do Windows Phone

Com suporte em: Windows Phone 8, Silverlight 8.1

Windows Phone 8.1, Windows Phone 8, Windows 8.1, Windows Server 2012 R2, Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (Função Server Core sem suporte), Windows Server 2008 R2 (Função Server Core com suporte com o SP1 ou posterior, Itanium sem suporte)

O .NET Framework não oferece suporte a todas as versões de cada plataforma. Para obter uma lista das versões com suporte, consulte Requisitos do sistema do .NET Framework.

Contribuições da comunidade

ADICIONAR
A Microsoft está realizando uma pesquisa online para saber sua opinião sobre o site do MSDN. Se você optar por participar, a pesquisa online lhe será apresentada quando você sair do site do MSDN.

Deseja participar?
Mostrar:
© 2014 Microsoft