Object.ToString, méthode

Retourne une chaîne qui représente l'objet actif.

Espace de noms :  System
Assembly :  mscorlib (dans mscorlib.dll)

public virtual string ToString()

Valeur de retour

Type : System.String
Chaîne qui représente l'objet actif.

ToString est la méthode de mise en forme majeure dans le .NET Framework. Il convertit un objet dans sa représentation de chaîne afin qu'il soit approprié pour l'affichage. Pour plus d'informations sur la prise en charge de la mise en forme dans le .NET Framework, consultez Mise en forme des types.

L'implémentation par défaut de la méthode ToString retourne le nom qualifié complet du type du Object, comme l'illustre l'exemple suivant.


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


Étant donné que Object est la classe de base de tous les types référence dans le .NET Framework, ce comportement est hérité par les types référence qui ne substituent pas la méthode ToString. L'exemple suivant illustre ce comportement. Il définit une classe nommée Object1 qui accepte l'implémentation par défaut de tous les membres Object. Sa méthode ToString retourne le nom de type qualifié complet de l'objet.


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


Généralement, les types remplacent la méthode ToString pour retourner une chaîne qui représente l'instance de l'objet. Par exemple, les types de données de base, tels que Char, Int32 et String implémentent ToString de sorte qu'il retourne la forme de chaîne de la valeur représentée par l'objet. L'exemple suivant définit une classe, Object2, qui remplace la méthode ToString pour retourner le nom de type avec sa valeur.


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


Remarques pour Windows Runtime

Lorsque vous appelez la méthode ToString sur une classe dans Windows Runtime, elle fournit le comportement par défaut pour les classes qui ne substituent pas ToString. Ceci fait partie du support que le Framework .NET fournit pour Windows Runtime (voir Prise en charge .NET Framework pour les applications Windows Store et Windows Runtime). Les classes de Windows Runtime n'héritent pas Object, et n'implémentent pas toujours ToString. Toutefois, elles semblent toujours avoir ToString, Equals(Object), et les méthodes GetHashCode lorsque vous les utilisez dans votre code C# ou Visual Basic, et .NET Framework fournissent un comportement par défaut pour ces méthodes.

Depuis la .NET Framework 4.5.1, le common langage runtime utilisera IStringable.ToString sur un objet de Windows Runtime avant de revenir à l'implémentation par défaut de Object.ToString.

RemarqueRemarque

Les classes Windows Runtime écrites en C# ou en Visual Basic peuvent substituer la méthode ToString.

7bxwbwt2.collapse_all(fr-fr,VS.110).gifLe Windows Runtime et l'interface d'IStringable

Depuis Windows 8.1, le Windows Runtime comprend une interface IStringable dont l'unique méthode, IStringable.ToString, permet une prise en charge basique du formattage comparable à celle proposée par Object.ToString. Pour empêcher l'ambiguïté, vous ne devez pas implémenter IStringable sur les types managés.

Lorsque des objets managés sont appelés par du code natif ou par code écrit dans des langages tels que JavaScript ou C++/CX, ils semblent implémenter IStringable. Le Common Langage Runtime routera automatiquement des appels de IStringable.ToString vers Object.ToString dans le cas où IStringable n'est pas implémenté dans l'objet managé.

Mise en gardeAttention

Dans la mesure où les auto-implémentations du Common Langage Runtime IStringable pour tous les types managés dans les applications Windows Store, nous vous recommandons de ne pas fournir votre propre implémentation de IStringable. L'implémentation de IStringable peut provoquer un comportement non désiré lors de l'appel de ToString depuis Windows Runtime, C++/CX, ou JavaScript.

Si vous décidez d'implémenter IStringable dans un type managé public qui est exporté dans un composant Windows Runtime, les restrictions suivantes s'appliquent :

  • Vous ne pouvez définir l'interface IStringable que dans une relation «d'impléments de classe », par exemple

    public class NewClass : IStringable
    

    en C#, ou

    Public Class NewClass : Implements IStringable
    

    en Visual Basic.

  • Vous ne pouvez pas implémenter IStringable sur une interface.

  • Vous ne pouvez pas déclarer un paramètre comme étant de type IStringable.

  • IStringable ne peut pas être le type de retour d'une méthode, une propriété, un champ.

  • Vous ne pouvez pas masquer votre implémentation de IStringable aux classes de base en utilisant une définition de méthode suivante :

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

    En revanche, l'implémentation de IStringable.ToString doit toujours substituer l'implémentation de la classe de base. Vous pouvez masquer une implémentation de ToString uniquement en l'appelant sur une instance de classe fortement typée.

Notez que dans diverses conditions, les appels de code natif vers un type managé qui implémente IStringable ou masque son implémentation de ToString peuvent produire un comportement inattendu.

Remarques à l'attention des héritiers

Lorsque vous implémentez vos propres types, vous devez substituer la méthode ToString aux valeurs de retour qui sont explicites pour ces types. Les classes dérivées qui requièrent plus de contrôle sur la mise en forme que ne fournit ToString peuvent implémenter l'interface IFormattable. Sa méthode IFormattable.ToString(String, IFormatProvider) vous permet de définir des chaînes de format qui contrôlent la mise en forme et utiliser un objet IFormatProvider qui peut fournir la mise en forme spécifique à la culture.

Les substitutions de la méthode ToString doivent suivre les indications suivantes :

  • La chaîne retournée doit être conviviale et lisible par les humains.

  • La chaîne retournée doit uniquement identifier la valeur de l'instance d'objet.

  • La chaîne retournée doit être aussi courte que possible afin qu'elle convienne pour l'affichage par un débogueur.

  • Votre substitution de ToString ne doit pas retourner String.Empty ou une chaîne vide.

  • Votre substitution de ToString ne doit pas lever une exception.

  • Si la représentation sous forme de chaîne d'une instance est dépendante de la culture ou peut être mise en forme de plusieurs façons, implémentez l'interface IFormattable.

  • Si la chaîne retournée inclut des informations sensibles, vous devez d'abord demander une autorisation appropriée. Si la demande réussit, vous pouvez retourner les informations sensibles ; sinon, vous devez retourner une chaîne qui exclut les informations sensibles.

  • Votre substitution de ToString ne doit avoir aucun effet secondaire observable pour éviter des problèmes lors du débogage. Par exemple, un appel à la méthode ToString ne doit pas modifier la valeur des champs d'instance.

  • Si votre type implémente une méthode d'analyse syntaxique ( Parse ou une méthode TryParse, un constructeur, ou une autre méthode statique qui crée une instance du type depuis une chaîne), vous devez vérifier que la chaîne retournée par la méthode ToString peut être convertie en une instance de l'objet.

.NET Framework

Pris en charge dans : 4.5.2, 4.5.1, 4.5, 4, 3.5, 3.0, 2.0, 1.1, 1.0

.NET Framework Client Profile

Pris en charge dans : 4, 3.5 SP1

Bibliothèque de classes portable

Pris en charge dans : Bibliothèque de classes portable

.NET pour les applications du Windows Store

Pris en charge dans : Windows 8

.NET pour les applications Windows Phone

Pris en charge dans : 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 (rôle principal du serveur non pris en charge), Windows Server 2008 R2 (rôle principal du serveur pris en charge avec SP1 ou version ultérieure ; Itanium non pris en charge)

Le .NET Framework ne prend pas en charge toutes les versions de chaque plateforme. Pour obtenir la liste des versions prises en charge, consultez Configuration requise du .NET Framework.
Cela vous a-t-il été utile ?
(1500 caractères restants)
Merci pour vos suggestions.

Ajouts de la communauté

AJOUTER
Afficher:
© 2014 Microsoft