Cet article a fait l'objet d'une traduction automatique. Déplacez votre pointeur sur les phrases de l'article pour voir la version originale de ce texte. Informations supplémentaires.
Traduction
Source
Ce sujet n'a pas encore été évalué - Évaluez ce sujet

StringBuilder.AppendFormat, méthode (IFormatProvider, String, Object[])

Ajoute la chaîne retournée par le traitement d'une chaîne de format composite, qui contient un nombre supérieur ou égal à zéro d'éléments de mise en forme, à la fin de cette instance. Chaque élément de mise en forme est remplacé par la représentation sous forme de chaîne d'un argument correspondant dans un tableau de paramètres à l'aide d'un fournisseur de format spécifié.

Espace de noms :  System.Text
Assembly :  mscorlib (dans mscorlib.dll)
public StringBuilder AppendFormat(
	IFormatProvider provider,
	string format,
	params Object[] args
)

Paramètres

provider
Type : System.IFormatProvider
Objet qui fournit des informations de mise en forme spécifiques à la culture.
format
Type : System.String
Chaîne de format composite (consultez Remarques).
args
Type : System.Object[]
Tableau d'objets à mettre en forme.

Valeur de retour

Type : System.Text.StringBuilder
Référence à cette instance après l'opération d'ajout. Après l'opération d'ajout, cette instance contient les données ayant existé avant l'opération, suffixées par une copie de format où la spécification de format est remplacée par la représentation sous forme de chaîne de l'argument objet correspondant.
ExceptionCondition
ArgumentNullException

format a la valeur null.

FormatException

format n'est pas valide.

ou

L'index d'un élément de mise en forme est inférieur à 0 (zéro), ou supérieur ou égal à la longueur du tableau args.

ArgumentOutOfRangeException

La longueur de la chaîne développée dépasserait MaxCapacity.

Cette méthode utilise la fonctionnalité de mise en forme composite du .NET Framework pour convertir la valeur d'un objet en sa représentation textuelle et incorporer cette représentation dans l'objet StringBuilder actuel.

Le paramètre format se compose de zéro ou de plusieurs exécutions de texte associées à zéro ou de plusieurs espaces réservés indexés, appelés éléments de format, qui correspondent aux objets de la liste de paramètres de cette méthode. Le processus de mise en forme remplace chaque élément de mise en forme par la représentation sous forme de chaîne de l'objet correspondant.

La syntaxe d'un élément de mise en forme est la suivante :

{index[,length][:formatString]}

Les éléments entre crochets sont facultatifs. Le tableau suivant décrit les différents éléments.

Élément

Description

index

Position de base zéro dans la liste de paramètres de l'objet à mettre en forme. Si l'objet spécifié par index est null, l'élément de mise en forme est remplacé par String.Empty. S'il n'existe aucun paramètre à la position d'index, une FormatException est levée.

,longueur

Nombre minimal de caractères contenus dans la représentation sous forme de chaîne du paramètre. Si la valeur est positive, le paramètre est aligné à droite ; si la valeur est négative, il est aligné à gauche.

:formatString

Chaîne de format standard ou personnalisée qui est prise en charge par le paramètre.

RemarqueRemarque

Pour connaître les chaînes de format standard et personnalisées utilisées avec les valeurs de date et d'heure, consultez Chaînes de format de date et d'heure standard et Chaînes de format de date et d'heure personnalisées. Pour connaître les chaînes de format standard et personnalisées utilisées avec les valeurs numériques, consultez Chaînes de format numériques standard et Chaînes de format numériques personnalisées. Pour connaître les chaînes de format standard utilisées avec les énumérations, consultez Chaînes de format d'énumération.

Le paramètre provider spécifie une implémentation IFormatProvider qui peut fournir des informations de mise en forme pour les objets dans args. provider peut être :

  • Objet CultureInfo qui fournit des informations de format spécifiques à la culture.

  • Objet NumberFormatInfo qui fournit des informations de mise en forme spécifiques à la culture pour les valeurs numériques dans args.

  • Objet DateTimeFormatInfo qui fournit information de mise en forme spécifique à la culture pour les valeurs date et heure dans args.

  • Implémentation IFormatProvider personnalisée qui fournit les informations de mise en forme pour un ou plusieurs objets dans args. En général, une telle implémentation implémente également l'interface ICustomFormatter. Le deuxième exemple de la section suivante illustre un appel de la méthode StringBuilder.AppendFormat(IFormatProvider, String, Object[]) avec une implémentation IFormatProvider personnalisée.

Si le paramètre provider est null, les informations de fournisseur de format sont obtenues à partir de la culture en cours.

args représente les objets à mettre en forme. Chaque élément de mise en forme dans format est remplacé par la représentation sous forme de chaîne de l'objet correspondant dans args. Si l'élément de mise en forme inclut formatString et l'objet correspondant dans args implémente l'interface IFormattable, alors args[index].Format(formatString, provider) définit la mise en forme. Dans le cas contraire, args[index].ToString(provider) définit la mise en forme.

Remarques à l'attention des appelants

Dans .NET Framework 4 et .NET Framework 4.5, lorsque vous instanciez l'objet d' StringBuilder en appelant le constructeur d' StringBuilder(Int32, Int32) , la longueur et l'instance d' StringBuilder peuvent étendre au delà de la valeur de sa propriété d' MaxCapacity . Cela peut se produire en particulier lorsque vous appelez des méthodes d' Append et d' AppendFormat pour ajouter des petites chaînes.

L'exemple de code suivant illustre la méthode AppendFormat.


using System;
using System.Text;
using System.Globalization;

class Sample 
{
    static StringBuilder sb = new StringBuilder();

    public static void Main() 
    {
    int    var1   = 111;
    float  var2   = 2.22F;
    string var3   = "abcd";
    object[] var4 = {3, 4.4, 'X'};

    Console.WriteLine();
    Console.WriteLine("StringBuilder.AppendFormat method:");
    sb.AppendFormat("1) {0}", var1);
    Show(sb);
    sb.AppendFormat("2) {0}, {1}", var1, var2);
    Show(sb);
    sb.AppendFormat("3) {0}, {1}, {2}", var1, var2, var3);
    Show(sb);
    sb.AppendFormat("4) {0}, {1}, {2}", var4);
    Show(sb);
    CultureInfo ci = new CultureInfo("es-ES", true);
    sb.AppendFormat(ci, "5) {0}", var2);
    Show(sb);
    }

    public static void Show(StringBuilder sbs)
    {
    Console.WriteLine(sbs.ToString());
    sb.Length = 0;
    }
}
/*
This example produces the following results:

StringBuilder.AppendFormat method:
1) 111
2) 111, 2.22
3) 111, 2.22, abcd
4) 3, 4.4, X
5) 2,22
*/


L'exemple suivant définit une implémentation IFormatProvider personnalisée nommée CustomerFormatter qui met en forme un numéro de client de 10 chiffres avec des traits d'union après le quatrième chiffre et le septième chiffre. Il est passé à la méthode StringBuilder.AppendFormat(IFormatProvider, String, Object[]) pour créer une chaîne qui inclut le numéro et le nom de client mis en forme.


using System;
using System.Text;

public class Customer
{
   private string custName;
   private int custNumber;

   public Customer(string name, int number)
   {
      this.custName = name;
      this.custNumber = number;
   }

   public string Name
   {
      get { return this.custName; }
   }

   public int CustomerNumber
   {
      get { return this.custNumber; }
   }
}

public class CustomerNumberFormatter : IFormatProvider, ICustomFormatter
{   
   public object GetFormat(Type formatType)
   {
      if (formatType == typeof(ICustomFormatter))
         return this;
      return null;
   }

   public string Format(string format, object arg, IFormatProvider provider)
   {
      if (arg is Int32)
      {
         string custNumber = ((int) arg).ToString("D10");
         return custNumber.Substring(0, 4) + "-" + custNumber.Substring(4, 3) + 
                "-" + custNumber.Substring(7, 3);
      }
      else
      {
         return null;
      }
   }                   
}

public class Example
{
   public static void Main()
   {
      Customer customer = new Customer("A Plus Software", 903654);
      StringBuilder sb = new StringBuilder();
      sb.AppendFormat(new CustomerNumberFormatter(), "{0}: {1}", 
                      customer.CustomerNumber, customer.Name);
      Console.WriteLine(sb.ToString());
   }
}
// The example displays the following output:
//      0000-903-654: A Plus Software


.NET Framework

Pris en charge dans : 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

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)

Ajouts de la communauté

AJOUTER
© 2013 Microsoft. Tous droits réservés.