Cette documentation est archivée et n’est pas conservée.

IFormattable, interface

Fournit des fonctionnalités permettant de mettre en forme la valeur d'un objet dans une chaîne.

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

[ComVisibleAttribute(true)] 
public interface IFormattable
/** @attribute ComVisibleAttribute(true) */ 
public interface IFormattable
ComVisibleAttribute(true) 
public interface IFormattable

IFormattable est implémenté par les types de données de base.

Un format décrit l'apparence d'un objet lorsqu'il est converti en chaîne. Il peut être soit standard, soit personnalisé. Un format standard se présente sous la forme Axx, où A est un caractère alphabétique appelé spécificateur de format, et xx un entier non négatif appelé spécificateur de précision. Le spécificateur de format contrôle le type de mise en forme appliqué à la valeur représentée sous forme de chaîne. Le spécificateur de précision contrôle le nombre de chiffres significatifs ou de décimales éventuels dans la chaîne.

Si un format comprend des symboles qui varient selon la culture, tels que le symbole monétaire représenté par les formats « C » et « c », un objet de mise en forme fournit les caractères effectivement utilisés dans la chaîne. Une méthode peut comprendre un paramètre qui permet de passer un objet IFormatProvider fournissant un objet de mise en forme, ou utiliser l'objet de mise en forme par défaut contenant les définitions de symboles du thread en cours. Le thread en cours utilise généralement le même jeu de symboles que le jeu par défaut employé dans tout le système.

Remarques à l'attention des implémenteurs Les classes nécessitant davantage de contrôle sur la mise en forme des chaînes que celui fourni par Object.ToString doivent implémenter IFormattable, dont la méthode ToString utilise la propriété CurrentCulture du thread en cours. Une classe implémentant IFormattable doit prendre en charge le code de mise en forme « G » (général). Outre le code « G », la classe peut définir la liste des codes de mise en forme pris en charge. Pour plus d'informations sur la mise en forme et les codes de mise en forme, consultez Vue d'ensemble des formats.

L'exemple de code suivant illustre la définition d'un type qui implémente l'interface IFormattable. L'exemple montre également comment appeler la méthode ToString de l'interface IFormattable.

using System;

class Point : IFormattable
{
    public int x, y;

    public Point(int x, int y)
    {
        this.x = x;
        this.y = y;
    }

    public override String ToString() { return ToString(null, null); }

    public String ToString(String format, IFormatProvider fp)
    {
        // If no format is passed, display like this: (x, y).
        if (format == null) return String.Format("({0}, {1})", x, y);

        // For "x" formatting, return just the x value as a string
        if (format == "x") return x.ToString();

        // For "y" formatting, return just the y value as a string
        if (format == "y") return y.ToString();

        // For any unrecognized format, throw an exception.
        throw new FormatException(String.Format("Invalid format string: '{0}'.", format));
    }
}


public sealed class App
{
    static void Main()
    {
        // Create the object.
        Point p = new Point(5, 98);

        // Test ToString with no formatting.
        Console.WriteLine("This is my point: " + p.ToString());

        // Use custom formatting style "x"
        Console.WriteLine("The point's x value is {0:x}", p);

        // Use custom formatting style "y"
        Console.WriteLine("The point's y value is {0:y}", p);

        try 
        {
            // Use an invalid format; FormatException should be thrown here.
            Console.WriteLine("Invalid way to format a point: {0:XYZ}", p);
        }
        catch (FormatException e)
        {
            Console.WriteLine("The last line could not be displayed: {0}", e.Message);
        }
    }
}

// This code produces the following output.
// 
//  This is my point: (5, 98)
//  The point's x value is 5
//  The point's y value is 98
//  The last line could not be displayed: Invalid format string: 'XYZ'.

Windows 98, Windows 2000 SP4, Windows CE, Windows Millennium Edition, Windows Mobile pour Pocket PC, Windows Mobile pour Smartphone, Windows Server 2003, Windows XP Édition Media Center, Windows XP Professionnel Édition x64, Windows XP SP2, Windows XP Starter Edition

Le .NET Framework ne prend pas en charge toutes les versions de chaque plate-forme. Pour obtenir la liste des versions prises en charge, consultez Configuration requise.

.NET Framework

Prise en charge dans : 2.0, 1.1, 1.0

.NET Compact Framework

Prise en charge dans : 2.0, 1.0
Afficher: