Dieser Artikel wurde maschinell übersetzt. Wenn Sie die englische Version des Artikels anzeigen möchten, aktivieren Sie das Kontrollkästchen Englisch. Sie können den englischen Text auch in einem Popupfenster anzeigen, indem Sie den Mauszeiger über den Text bewegen.
Übersetzung
Englisch

StringBuilder.AppendFormat-Methode: (IFormatProvider, String, Object[])

 

Veröffentlicht: Oktober 2016

Fügt die Zeichenfolge, die durch Verarbeitung einer kombinierten Formatzeichenfolge mit 0 (null) oder mehr Formatelementen zurückgegeben wurde, an diese Instanz an. Jedes Formatelement wird von der Zeichenfolgendarstellung eines entsprechenden Arguments in einem Parameterarray ersetzt, das einen angegebenen Formatanbieter verwendet.

Namespace:   System.Text
Assembly:  mscorlib (in mscorlib.dll)

public StringBuilder AppendFormat(
	IFormatProvider provider,
	string format,
	params object[] args
)

Parameter

provider
Type: System.IFormatProvider

Ein Objekt, das kulturspezifische Formatierungsinformationen bereitstellt.

format
Type: System.String

Eine kombinierte Formatierungszeichenfolge (siehe Hinweise).

args
Type: System.Object[]

Ein Array zu formatierender Objekte.

Rückgabewert

Type: System.Text.StringBuilder

Ein Verweis auf diese Instanz, nachdem der Anfügevorgang abgeschlossen wurde. Nach dem Anfügevorgang enthält diese Instanz alle Daten, die auch vor dem Vorgang vorhanden waren. Ihnen folgt eine Kopie von format, wobei die Formatangabe durch die Zeichenfolgendarstellung des entsprechenden Objektarguments ersetzt wurde.

Exception Condition
ArgumentNullException

format ist null.

FormatException

format ist ungültig.

- oder -

Der Index eines Formatelements ist kleiner als 0 (null) oder größer oder gleich der Länge des args-Arrays.

ArgumentOutOfRangeException

Die Länge der erweiterten Zeichenfolge würde MaxCapacity überschreiten.

Diese Methode verwendet die kombinierte Formatierung von .NET Framework, um den Wert eines Objekts in dessen Textdarstellung zu konvertieren und diese Darstellung in der aktuellen einzubetten StringBuilder Objekt.

Die format -Parameter besteht aus 0 (null) oder mehreren Durchläufen von Text, vermischt mit 0 (null) oder mehr indizierte Platzhalter enthalten, den so genannten Formatelementen, die Objekten in der Parameterliste dieser Methode entsprechen. Der Formatierungsvorgang wird jedes Formatelement durch die Zeichenfolgendarstellung des entsprechenden Objekts ersetzt.

Die Syntax eines Formatelements lautet wie folgt:

{Index[,Länge] [:FormatString]}

Elemente in eckigen Klammern sind optional. In der folgenden Tabelle wird jedes Element beschrieben.

Element

Beschreibung

Index

Die nullbasierte Position in der Parameterliste des Objekts, das formatiert werden. Wenn das Objekt vom angegebenen Index ist null, das Formatelement wird durch ersetzt String.Empty. Wenn es keinen Parameter in gibt der Index Position ein FormatException ausgelöst.

,Länge

Die minimale Anzahl von Zeichen in der Zeichenfolgendarstellung des Parameters. Wenn positiv ist, ist der Parameter rechtsbündig ausgerichtet. Wenn negativ ist, ist es linksbündig ausgerichtet.

:FormatString

Eine standardmäßige oder benutzerdefinierte Formatzeichenfolge, die vom Parameter unterstützt wird.

System_CAPS_noteHinweis

Die standardmäßigen und benutzerdefinierten Formatzeichenfolgen, die mit Datums-und Uhrzeitwerte verwendet werden, finden Sie unter Standard-Formatzeichenfolgen für Datum und Uhrzeit und Benutzerdefinierte Formatzeichenfolgen für Datum und Uhrzeit. Die standardmäßigen und benutzerdefinierten Formatzeichenfolgen, die mit numerischen Werten verwendet werden, finden Sie unter Standardmäßige Zahlenformatzeichenfolgen und Benutzerdefinierte Zahlenformatzeichenfolgen. Standardformatzeichenfolgen für Enumerationen verwendet, finden Sie unter Enumerationsformatzeichenfolgen.

Die provider Parameter gibt ein IFormatProvider -Implementierung, die Formatierungsinformationen für die Objekte in ermöglicht args. provider kann eine der folgenden Formen haben:

  • Ein CultureInfo -Objekt, das kulturspezifische Formatierungsinformationen bereitstellt.

  • Ein NumberFormatInfo -Objekt, das kulturspezifische Formatierungsinformationen für numerische Werte in bietet args.

  • Ein DateTimeFormatInfo -Objekt, das kulturspezifische Formatierungsinformationen für Datums- und Zeitwerten in bietet args.

  • Eine benutzerdefinierte IFormatProvider -Implementierung, die Formatierungsinformationen für eine oder mehrere Objekte in args. In der Regel implementiert eine solche Implementierung auch die ICustomFormatter Schnittstelle. Das zweite Beispiel im nächsten Abschnitt veranschaulicht einen StringBuilder.AppendFormat(IFormatProvider, String, Object[]) Aufruf der Methode mit einem benutzerdefinierten IFormatProvider Implementierung.

Wenn der provider -Parameter ist null, Format Anbieterinformationen aus der aktuellen Kultur abgerufen.

args Stellt die zu formatierenden Objekte dar. Jedes Formatelement in format wird ersetzt durch die Zeichenfolgendarstellung des entsprechenden Objekts in args. Wenn das Formatelement enthält formatString und das entsprechende Objekt in args implementiert die IFormattable -Schnittstelle ein, klicken Sie dann args[index].ToString(formatString, provider) definiert die Formatierung. Andernfalls args[index].ToString() definiert die Formatierung.

Hinweise für Aufrufer:

In der.NET Framework 4 und die .NET Framework 4.5, die beim Instanziieren der StringBuilder -Objekt durch Aufrufen der StringBuilder(Int32, Int32) -Konstruktor, der Länge und die Kapazität der der StringBuilder Instanz den Wert hinaus anwachsen kann seine MaxCapacity Eigenschaft. Dies kann auftreten, insbesondere beim Aufrufen der Append und AppendFormat Methoden kleine Zeichenfolgen anfügen.

Das folgende Beispiel veranschaulicht die AppendFormat Methode.

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
*/

Das folgende Beispiel definiert ein benutzerdefiniertes IFormatProvider -Implementierung mit dem Namen CustomerFormatter die einen 10-Ziffern-Kunden, die durch Bindestriche nach der vierten und siebten Ziffer formatiert. Erfolgt eine Übergabe an die StringBuilder.AppendFormat(IFormatProvider, String, Object[]) Methode, um eine Zeichenfolge zu erstellen, die die formatierte Kundennummer und den Kundennamen einschließt.

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

Universelle Windows-Plattform
Verfügbar seit 8
.NET Framework
Verfügbar seit 1.1
Portierbare Klassenbibliothek
Unterstützt in: portierbare .NET-Plattformen
Silverlight
Verfügbar seit 2.0
Windows Phone Silverlight
Verfügbar seit 7.0
Windows Phone
Verfügbar seit 8.1
Zurück zum Anfang
Anzeigen: