StringBuilder.AppendFormat StringBuilder.AppendFormat StringBuilder.AppendFormat StringBuilder.AppendFormat Method

Определение

Добавляет к данному экземпляру строку, возвращаемую в результате обработки строки составного формата, содержащей ноль или более элементов формата.Appends the string returned by processing a composite format string, which contains zero or more format items, to this instance. Каждый элемент формата заменяется строковым представлением соответствующего аргумента объекта.Each format item is replaced by the string representation of a corresponding object argument.

Перегрузки

AppendFormat(IFormatProvider, String, Object, Object, Object) AppendFormat(IFormatProvider, String, Object, Object, Object) AppendFormat(IFormatProvider, String, Object, Object, Object) AppendFormat(IFormatProvider, String, Object, Object, Object)

Добавляет к данному экземпляру строку, возвращаемую в результате обработки строки составного формата, содержащей ноль или более элементов формата.Appends the string returned by processing a composite format string, which contains zero or more format items, to this instance. Каждый элемент формата заменяется строковым представлением любого из трех аргументов с помощью указанного поставщика формата.Each format item is replaced by the string representation of either of three arguments using a specified format provider.

AppendFormat(String, Object) AppendFormat(String, Object) AppendFormat(String, Object) AppendFormat(String, Object)

Добавляет к данному экземпляру строку, возвращаемую в результате обработки строки составного формата, содержащей ноль или более элементов формата.Appends the string returned by processing a composite format string, which contains zero or more format items, to this instance. Каждый элемент формата заменяется строковым представлением одного аргумента.Each format item is replaced by the string representation of a single argument.

AppendFormat(String, Object[]) AppendFormat(String, Object[]) AppendFormat(String, Object[]) AppendFormat(String, Object[])

Добавляет к данному экземпляру строку, возвращаемую в результате обработки строки составного формата, содержащей ноль или более элементов формата.Appends the string returned by processing a composite format string, which contains zero or more format items, to this instance. Каждый элемент формата заменяется строковым представлением соответствующего аргумента в массиве параметров.Each format item is replaced by the string representation of a corresponding argument in a parameter array.

AppendFormat(IFormatProvider, String, Object) AppendFormat(IFormatProvider, String, Object) AppendFormat(IFormatProvider, String, Object) AppendFormat(IFormatProvider, String, Object)

Добавляет к данному экземпляру строку, возвращаемую в результате обработки строки составного формата, содержащей ноль или более элементов формата.Appends the string returned by processing a composite format string, which contains zero or more format items, to this instance. Каждый элемент формата заменяется строковым представлением одного аргумента с использованием указанного поставщика формата.Each format item is replaced by the string representation of a single argument using a specified format provider.

AppendFormat(IFormatProvider, String, Object[]) AppendFormat(IFormatProvider, String, Object[]) AppendFormat(IFormatProvider, String, Object[]) AppendFormat(IFormatProvider, String, Object[])

Добавляет к данному экземпляру строку, возвращаемую в результате обработки строки составного формата, содержащей ноль или более элементов формата.Appends the string returned by processing a composite format string, which contains zero or more format items, to this instance. Каждый элемент формата заменяется строковым представлением соответствующего аргумента в массиве параметров с помощью указанного поставщика формата.Each format item is replaced by the string representation of a corresponding argument in a parameter array using a specified format provider.

AppendFormat(String, Object, Object) AppendFormat(String, Object, Object) AppendFormat(String, Object, Object) AppendFormat(String, Object, Object)

Добавляет к данному экземпляру строку, возвращаемую в результате обработки строки составного формата, содержащей ноль или более элементов формата.Appends the string returned by processing a composite format string, which contains zero or more format items, to this instance. Каждый элемент формата заменяется строковым представлением любого из двух аргументов.Each format item is replaced by the string representation of either of two arguments.

AppendFormat(IFormatProvider, String, Object, Object) AppendFormat(IFormatProvider, String, Object, Object) AppendFormat(IFormatProvider, String, Object, Object) AppendFormat(IFormatProvider, String, Object, Object)

Добавляет к данному экземпляру строку, возвращаемую в результате обработки строки составного формата, содержащей ноль или более элементов формата.Appends the string returned by processing a composite format string, which contains zero or more format items, to this instance. Каждый элемент формата заменяется строковым представлением любого из двух аргументов с помощью указанного поставщика формата.Each format item is replaced by the string representation of either of two arguments using a specified format provider.

AppendFormat(String, Object, Object, Object) AppendFormat(String, Object, Object, Object) AppendFormat(String, Object, Object, Object) AppendFormat(String, Object, Object, Object)

Добавляет к данному экземпляру строку, возвращаемую в результате обработки строки составного формата, содержащей ноль или более элементов формата.Appends the string returned by processing a composite format string, which contains zero or more format items, to this instance. Каждый элемент формата заменяется строковым представлением любого из трех аргументов.Each format item is replaced by the string representation of either of three arguments.

AppendFormat(IFormatProvider, String, Object, Object, Object) AppendFormat(IFormatProvider, String, Object, Object, Object) AppendFormat(IFormatProvider, String, Object, Object, Object) AppendFormat(IFormatProvider, String, Object, Object, Object)

Добавляет к данному экземпляру строку, возвращаемую в результате обработки строки составного формата, содержащей ноль или более элементов формата.Appends the string returned by processing a composite format string, which contains zero or more format items, to this instance. Каждый элемент формата заменяется строковым представлением любого из трех аргументов с помощью указанного поставщика формата.Each format item is replaced by the string representation of either of three arguments using a specified format provider.

public:
 System::Text::StringBuilder ^ AppendFormat(IFormatProvider ^ provider, System::String ^ format, System::Object ^ arg0, System::Object ^ arg1, System::Object ^ arg2);
public System.Text.StringBuilder AppendFormat (IFormatProvider provider, string format, object arg0, object arg1, object arg2);
member this.AppendFormat : IFormatProvider * string * obj * obj * obj -> System.Text.StringBuilder
Public Function AppendFormat (provider As IFormatProvider, format As String, arg0 As Object, arg1 As Object, arg2 As Object) As StringBuilder

Параметры

provider
IFormatProvider IFormatProvider IFormatProvider IFormatProvider

Объект, предоставляющий сведения о форматировании для определенного языка и региональных параметров.An object that supplies culture-specific formatting information.

format
String String String String

Строка составного формата.A composite format string.

arg0
Object Object Object Object

Первый объект для форматирования.The first object to format.

arg1
Object Object Object Object

Второй объект для форматирования.The second object to format.

arg2
Object Object Object Object

Третий объект для форматирования.The third object to format.

Возвраты

Ссылка на этот экземпляр после завершения операции добавления.A reference to this instance after the append operation has completed. После операции добавления этот экземпляр содержит все данные, существовавшие до операции, к которым добавляется копия параметра format, где все спецификации форматирования заменяются представлением строки соответствующего аргумента объекта.After the append operation, this instance contains any data that existed before the operation, suffixed by a copy of format where any format specification is replaced by the string representation of the corresponding object argument.

Исключения

format недопустим.format is invalid.

-или--or- Индекс элемента формата меньше нуля или не меньше трех.The index of a format item is less than 0 (zero), or greater than or equal to 3 (three).

Длина развернутой строки превысила бы MaxCapacity.The length of the expanded string would exceed MaxCapacity.

Примеры

В следующем примере используется AppendFormat(IFormatProvider, String, Object, Object, Object) метод, чтобы проиллюстрировать результат логического значения And операции с помощью целочисленных значений.The following example uses the AppendFormat(IFormatProvider, String, Object, Object, Object) method to illustrate the result of a Boolean And operation with integer values. Обратите внимание, строка формата содержит шесть элементов форматирования, что метод имеет только три элемента в списке аргументов, так как каждый элемент форматируется двумя разными способами.Note that the format string includes six format items, but the method has only three items in its argument list, because each item is formatted in two different ways.

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

public class Example
{
   public static void Main()
   {
      Random rnd = new Random();
      CultureInfo culture = CultureInfo.CreateSpecificCulture("fr-FR");
      StringBuilder sb = new StringBuilder();
      string formatString = "    {0,12:N0} ({0,8:X8})\n" +
                            "And {1,12:N0} ({1,8:X8})\n" +
                            "  = {2,12:N0} ({2,8:X8})\n";
      for (int ctr = 0; ctr <= 2; ctr++) {
         int value1 = rnd.Next();
         int value2 = rnd.Next();
         sb.AppendFormat(culture, formatString,
                         value1, value2, value1 & value2).
                         AppendLine();
      }
      Console.WriteLine(sb.ToString());
   }
}
// The example displays output like the following:
//           1 984 112 195 (76432643)
//       And 1 179 778 511 (4651FDCF)
//         = 1 178 674 243 (46412443)
//
//           2 034 813 710 (7948CB0E)
//       And  569 333 976 (21EF58D8)
//         =  558 385 160 (21484808)
//
//            126 717 735 (078D8F27)
//       And 1 830 715 973 (6D1E8245)
//         =   84 705 797 (050C8205)
Imports System.Globalization
Imports System.Text

Public Module Example
   Public Sub Main()
      Dim rnd As New Random()
      Dim culture As CultureInfo = CultureInfo.CreateSpecificCulture("fr-FR")
      Dim sb As New StringBuilder()
      Dim formatString As String = "    {0,12:N0} ({0,8:X8})" + vbCrLf +
                                   "And {1,12:N0} ({1,8:X8})" + vbCrLf +
                                   "  = {2,12:N0} ({2,8:X8})" + vbCrLf
      For ctr As Integer = 0 To 2
         Dim value1 As Integer = rnd.Next()
         Dim value2 As Integer = rnd.Next()
         sb.AppendFormat(culture, formatString,
                         value1, value2, value1 And value2).AppendLine()
      Next
      Console.WriteLine(sb.ToString())
   End Sub
End Module
' The example displays the following output:
'           1 984 112 195 (76432643)
'       And 1 179 778 511 (4651FDCF)
'         = 1 178 674 243 (46412443)
'
'           2 034 813 710 (7948CB0E)
'       And  569 333 976 (21EF58D8)
'         =  558 385 160 (21484808)
'
'            126 717 735 (078D8F27)
'       And 1 830 715 973 (6D1E8245)
'         =   84 705 797 (050C8205)

Комментарии

Этот метод использует составного форматирования платформы .NET Framework для преобразования значения объекта в текстовое представление и встроить это представление в текущем StringBuilder объекта.This method uses the composite formatting feature of the .NET Framework to convert the value of an object to its text representation and embed that representation in the current StringBuilder object.

format Параметр состоит из нуля или более текста перемежающихся ноль или более индексированные местозаполнители, называются элементами форматирования, которые соответствуют объектам в списке параметров этого метода.The format parameter consists of zero or more runs of text intermixed with zero or more indexed placeholders, called format items, that correspond to objects in the parameter list of this method. Процессе форматирования каждый элемент формата заменяется строковым представлением соответствующего объекта.The formatting process replaces each format item with the string representation of the corresponding object.

Синтаксис элемента формата выглядит следующим образом:The syntax of a format item is as follows:

{индекс[,длина] [:formatString]}{index[,length][:formatString]}

Элементы в квадратных скобках являются необязательными.Elements in square brackets are optional. Каждый из элементов описан в таблице ниже.The following table describes each element.

ЭлементElement ОписаниеDescription
Индексindex Отсчитываемый от нуля позиция в списке параметров объекта для форматирования.The zero-based position in the parameter list of the object to be formatted. Если объект, определенный параметром индексnull, элемент формата заменяется String.Empty.If the object specified by index is null, the format item is replaced by String.Empty. При отсутствии параметра в индекс позиции, FormatException возникает исключение.If there is no parameter in the index position, a FormatException is thrown.
,длина,length Минимальное число символов в строковое представление параметра.The minimum number of characters in the string representation of the parameter. Если оно положительное, параметр по правому краю; Если оно отрицательное, оно по левому краю.If positive, the parameter is right-aligned; if negative, it is left-aligned.
:formatString:formatString Строка стандартного или настраиваемого формата, поддерживаемый параметр.A standard or custom format string that is supported by the parameter.

Примечание

Стандартные и настраиваемые строки форматирования значений даты и времени, см. в разделе Standard Date и Time Format Strings и пользовательские строки даты и времени формат.For the standard and custom format strings used with date and time values, see Standard Date and Time Format Strings and Custom Date and Time Format Strings. Стандартные и настраиваемые строки форматирования числовых значений, см. в разделе строки стандартных числовых форматов и пользовательские строки форматирования чисел.For the standard and custom format strings used with numeric values, see Standard Numeric Format Strings and Custom Numeric Format Strings. Строки стандартного формата, используемые для перечислений, см. в разделе строки форматов перечисления.For the standard format strings used with enumerations, see Enumeration Format Strings.

provider Параметр указывает IFormatProvider реализация, которую может предоставить сведения о форматировании arg0 и arg1.The provider parameter specifies an IFormatProvider implementation that can provide formatting information for arg0 and arg1. Параметр provider может иметь любое из следующих значений.provider can be any of the following:

  • Объект CultureInfo объект, предоставляющий сведения о форматировании для определенного языка и региональных параметров.A CultureInfo object that provides culture-specific formatting information.

  • Объект NumberFormatInfo объект, предоставляющий сведения о форматировании региональных arg0 или arg1 если они являются числовыми значениями.A NumberFormatInfo object that provides culture-specific formatting information for arg0 or arg1 if they are numeric values.

  • Объект DateTimeFormatInfo объект, предоставляющий сведения о форматировании региональных arg0, arg1, или arg2 если они значений даты и времени.A DateTimeFormatInfo object that provides culture-specific formatting information for arg0, arg1, or arg2 if they are date and time values.

  • Пользовательский IFormatProvider реализация, которая предоставляет сведения о форматировании arg0, arg1, и arg2.A custom IFormatProvider implementation that provides formatting information for arg0, arg1, and arg2. Как правило, также реализует такой реализации ICustomFormatter интерфейс.Typically, such an implementation also implements the ICustomFormatter interface.

Если provider параметр null, сведения о поставщике формата получается из текущего языка и региональных параметров.If the provider parameter is null, format provider information is obtained from the current culture.

arg0, arg1, и arg2 представляют объекты, которые необходимо отформатировать.arg0, arg1, and arg2 represent the objects to be formatted. Каждый элемент формата в format заменяется строковым представлением объект, имеющий соответствующий индекс.Each format item in format is replaced with the string representation of the object that has the corresponding index. Если элемент формата включает formatString и соответствующий аргумент реализует IFormattable интерфейс, а затем аргумента ToString(formatString, provider) метод определяет форматирование.If the format item includes formatString and the corresponding argument implements the IFormattable interface, then the argument's ToString(formatString, provider) method defines the formatting. В противном случае аргумент ToString() метод определяет форматирование.Otherwise, the argument's ToString() method defines the formatting.

Примечания для тех, кто вызывает этот метод

В .NET Core, а также в .NET Framework 4.0 и более поздних версий, при создании экземпляра StringBuilder путем вызова метода StringBuilder(Int32, Int32) конструктор, длина и емкость StringBuilder экземпляр может выйти за пределы значение его MaxCapacity свойство.In .NET Core and in the .NET Framework 4.0 and later versions, when you instantiate the StringBuilder object by calling the StringBuilder(Int32, Int32) constructor, both the length and the capacity of the StringBuilder instance can grow beyond the value of its MaxCapacity property. Это может произойти, особенно при вызове Append(String) и AppendFormat(String, Object) методы для добавления небольших строк.This can occur particularly when you call the Append(String) and AppendFormat(String, Object) methods to append small strings.

Дополнительно

AppendFormat(String, Object) AppendFormat(String, Object) AppendFormat(String, Object) AppendFormat(String, Object)

Добавляет к данному экземпляру строку, возвращаемую в результате обработки строки составного формата, содержащей ноль или более элементов формата.Appends the string returned by processing a composite format string, which contains zero or more format items, to this instance. Каждый элемент формата заменяется строковым представлением одного аргумента.Each format item is replaced by the string representation of a single argument.

public:
 System::Text::StringBuilder ^ AppendFormat(System::String ^ format, System::Object ^ arg0);
public System.Text.StringBuilder AppendFormat (string format, object arg0);
member this.AppendFormat : string * obj -> System.Text.StringBuilder
Public Function AppendFormat (format As String, arg0 As Object) As StringBuilder

Параметры

format
String String String String

Строка составного формата.A composite format string.

arg0
Object Object Object Object

Объект для форматирования.An object to format.

Возвраты

Ссылка на данный экземпляр с добавленным format.A reference to this instance with format appended. Каждый элемент формата в параметре format заменяется строковым представлением параметра arg0.Each format item in format is replaced by the string representation of arg0.

Исключения

format недопустим.format is invalid.

-или--or- Индекс элемента формата меньше нуля или не меньше 1.The index of a format item is less than 0 (zero), or greater than or equal to 1.

Длина развернутой строки превысила бы MaxCapacity.The length of the expanded string would exceed MaxCapacity.

Примеры

В следующем примере демонстрируется AppendFormat метод.The following example demonstrates the AppendFormat method.

using namespace System;
using namespace System::Text;
using namespace System::Globalization;
void Show( StringBuilder^ sbs )
{
   Console::WriteLine( sbs );
   sbs->Length = 0;
}

int main()
{
   StringBuilder^ sb = gcnew StringBuilder;
   int var1 = 111;
   float var2 = 2.22F;
   String^ var3 = "abcd";
   array<Object^>^var4 = {3,4.4,(Char)'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 = gcnew CultureInfo( "es-ES",true );
   array<Object^>^temp1 = {var2};
   sb->AppendFormat( ci, "5) {0}", temp1 );
   Show( sb );
}

/*
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
*/
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
*/
Imports System
Imports System.Text
Imports System.Globalization

Class Sample
   Private Shared sb As New StringBuilder()

   Public Shared Sub Main()
      Dim var1 As Integer = 111
      Dim var2 As Single = 2.22F
      Dim var3 As String = "abcd"
      Dim var4 As Object() =  {3, 4.4, "X"c}
      
      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)
      Dim ci As New CultureInfo("es-ES", True)
      sb.AppendFormat(ci, "5) {0}", var2)
      Show(sb)
   End Sub 'Main
   
   Public Shared Sub Show(sbs As StringBuilder)
      Console.WriteLine(sbs.ToString())
      sb.Length = 0
   End Sub 'Show
End Class 'Sample
'
'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

Комментарии

Этот метод использует составного форматирования платформы .NET Framework для преобразования значения объекта в текстовое представление и встроить это представление в текущем StringBuilder объекта.This method uses the composite formatting feature of the .NET Framework to convert the value of an object to its text representation and embed that representation in the current StringBuilder object.

format Параметр состоит из нуля или более текста перемежающихся ноль или более индексированные местозаполнители, называются элементами форматирования.The format parameter consists of zero or more runs of text intermixed with zero or more indexed placeholders, called format items. Индекс элемента форматирования должен быть 0, в соответствии с arg0, один объект в списке параметров этого метода.The index of the format items must be 0, to correspond to arg0, the single object in the parameter list of this method. Процесс форматирования каждый элемент формата заменяется строковым представлением arg0.The formatting process replaces each format item with the string representation of arg0.

Синтаксис элемента формата выглядит следующим образом:The syntax of a format item is as follows:

{индекс[,длина] [:formatString]}{index[,length][:formatString]}

Элементы в квадратных скобках являются необязательными.Elements in square brackets are optional. Каждый из элементов описан в таблице ниже.The following table describes each element.

ЭлементElement ОписаниеDescription
Индексindex Отсчитываемый от нуля позиция в списке параметров объекта для форматирования.The zero-based position in the parameter list of the object to be formatted. Если объект, определенный параметром индексnull, элемент формата заменяется String.Empty.If the object specified by index is null, the format item is replaced by String.Empty. При отсутствии параметра в индекс позиции, FormatException возникает исключение.If there is no parameter in the index position, a FormatException is thrown.
,длина,length Минимальное число символов в строковое представление параметра.The minimum number of characters in the string representation of the parameter. Если оно положительное, параметр по правому краю; Если оно отрицательное, оно по левому краю.If positive, the parameter is right-aligned; if negative, it is left-aligned.
:formatString:formatString Строка стандартного или настраиваемого формата, поддерживаемый параметр.A standard or custom format string that is supported by the parameter.

Примечание

Стандартные и настраиваемые строки форматирования значений даты и времени, см. в разделе Standard Date и Time Format Strings и пользовательские строки даты и времени формат.For the standard and custom format strings used with date and time values, see Standard Date and Time Format Strings and Custom Date and Time Format Strings. Стандартные и настраиваемые строки форматирования числовых значений, см. в разделе строки стандартных числовых форматов и пользовательские строки форматирования чисел.For the standard and custom format strings used with numeric values, see Standard Numeric Format Strings and Custom Numeric Format Strings. Строки стандартного формата, используемые для перечислений, см. в разделе строки форматов перечисления.For the standard format strings used with enumerations, see Enumeration Format Strings.

arg0 Представляет объект для форматирования.arg0 represents the object to be formatted. Каждый элемент формата в format заменяется строковым представлением arg0.Each format item in format is replaced with the string representation of arg0. Если элемент формата включает formatString и arg0 реализует IFormattable интерфейс, затем arg0.ToString(formatString, null) определяет форматирование.If the format item includes formatString and arg0 implements the IFormattable interface, then arg0.ToString(formatString, null) defines the formatting. В противном случае arg0.ToString() определяет форматирование.Otherwise, arg0.ToString() defines the formatting.

Если строка, назначенная format является «Спасибо за пожертвование {0: ###} консервных банок нашей благотворительной организации.»If the string assigned to format is "Thank you for your donation of {0:####} cans of food to our charitable organization." и arg0 должно быть целым числом со значением 10, возвращаемое значение будет «Спасибо за пожертвование 10 консервных банок нашей благотворительной организации».and arg0 is an integer with the value 10, the return value will be "Thank you for your donation of 10 cans of food to our charitable organization."

Примечания для тех, кто вызывает этот метод

В .NET Core, а также в .NET Framework 4.0 и более поздних версий, при создании экземпляра StringBuilder путем вызова метода StringBuilder(Int32, Int32) конструктор, длина и емкость StringBuilder экземпляр может выйти за пределы значение его MaxCapacity свойство.In .NET Core and in the .NET Framework 4.0 and later versions, when you instantiate the StringBuilder object by calling the StringBuilder(Int32, Int32) constructor, both the length and the capacity of the StringBuilder instance can grow beyond the value of its MaxCapacity property. Это может произойти, особенно при вызове Append(String) и AppendFormat(String, Object) методы для добавления небольших строк.This can occur particularly when you call the Append(String) and AppendFormat(String, Object) methods to append small strings.

Дополнительно

AppendFormat(String, Object[]) AppendFormat(String, Object[]) AppendFormat(String, Object[]) AppendFormat(String, Object[])

Добавляет к данному экземпляру строку, возвращаемую в результате обработки строки составного формата, содержащей ноль или более элементов формата.Appends the string returned by processing a composite format string, which contains zero or more format items, to this instance. Каждый элемент формата заменяется строковым представлением соответствующего аргумента в массиве параметров.Each format item is replaced by the string representation of a corresponding argument in a parameter array.

public:
 System::Text::StringBuilder ^ AppendFormat(System::String ^ format, ... cli::array <System::Object ^> ^ args);
public System.Text.StringBuilder AppendFormat (string format, params object[] args);
member this.AppendFormat : string * obj[] -> System.Text.StringBuilder
Public Function AppendFormat (format As String, ParamArray args As Object()) As StringBuilder

Параметры

format
String String String String

Строка составного формата.A composite format string.

args
Object[]

Массив объектов для форматирования.An array of objects to format.

Возвраты

Ссылка на данный экземпляр с добавленным format.A reference to this instance with format appended. Каждый элемент формата в параметре format заменяется строковым представлением соответствующего аргумента объекта.Each format item in format is replaced by the string representation of the corresponding object argument.

Исключения

Значение параметра format или argsnull.format or args is null.

format недопустим.format is invalid.

-или--or- Индекс элемента формата меньше нуля или больше либо равен длине массива args.The index of a format item is less than 0 (zero), or greater than or equal to the length of the args array.

Длина развернутой строки превысила бы MaxCapacity.The length of the expanded string would exceed MaxCapacity.

Примеры

В следующем примере демонстрируется AppendFormat метод.The following example demonstrates the AppendFormat method.

using namespace System;
using namespace System::Text;
using namespace System::Globalization;
void Show( StringBuilder^ sbs )
{
   Console::WriteLine( sbs );
   sbs->Length = 0;
}

int main()
{
   StringBuilder^ sb = gcnew StringBuilder;
   int var1 = 111;
   float var2 = 2.22F;
   String^ var3 = "abcd";
   array<Object^>^var4 = {3,4.4,(Char)'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 = gcnew CultureInfo( "es-ES",true );
   array<Object^>^temp1 = {var2};
   sb->AppendFormat( ci, "5) {0}", temp1 );
   Show( sb );
}

/*
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
*/
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
*/
Imports System
Imports System.Text
Imports System.Globalization

Class Sample
   Private Shared sb As New StringBuilder()

   Public Shared Sub Main()
      Dim var1 As Integer = 111
      Dim var2 As Single = 2.22F
      Dim var3 As String = "abcd"
      Dim var4 As Object() =  {3, 4.4, "X"c}
      
      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)
      Dim ci As New CultureInfo("es-ES", True)
      sb.AppendFormat(ci, "5) {0}", var2)
      Show(sb)
   End Sub 'Main
   
   Public Shared Sub Show(sbs As StringBuilder)
      Console.WriteLine(sbs.ToString())
      sb.Length = 0
   End Sub 'Show
End Class 'Sample
'
'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

Комментарии

Этот метод использует составного форматирования платформы .NET Framework для преобразования значения объекта в текстовое представление и встроить это представление в текущем StringBuilder объекта.This method uses the composite formatting feature of the .NET Framework to convert the value of an object to its text representation and embed that representation in the current StringBuilder object.

format Параметр состоит из нуля или более текста перемежающихся ноль или более индексированные местозаполнители, называются элементами форматирования, которые соответствуют объектам в списке параметров этого метода.The format parameter consists of zero or more runs of text intermixed with zero or more indexed placeholders, called format items, that correspond to objects in the parameter list of this method. Процессе форматирования каждый элемент формата заменяется строковым представлением соответствующего объекта.The formatting process replaces each format item with the string representation of the corresponding object.

Синтаксис элемента формата выглядит следующим образом:The syntax of a format item is as follows:

{индекс[,длина] [:formatString]}{index[,length][:formatString]}

Элементы в квадратных скобках являются необязательными.Elements in square brackets are optional. Каждый из элементов описан в таблице ниже.The following table describes each element.

ЭлементElement ОписаниеDescription
Индексindex Отсчитываемый от нуля позиция в списке параметров объекта для форматирования.The zero-based position in the parameter list of the object to be formatted. Если объект, определенный параметром индексnull, элемент формата заменяется String.Empty.If the object specified by index is null, the format item is replaced by String.Empty. При отсутствии параметра в индекс позиции, FormatException возникает исключение.If there is no parameter in the index position, a FormatException is thrown.
,длина,length Минимальное число символов в строковое представление параметра.The minimum number of characters in the string representation of the parameter. Если оно положительное, параметр по правому краю; Если оно отрицательное, оно по левому краю.If positive, the parameter is right-aligned; if negative, it is left-aligned.
:formatString:formatString Строка стандартного или настраиваемого формата, поддерживаемый параметр.A standard or custom format string that is supported by the parameter.

Примечание

Стандартные и настраиваемые строки форматирования значений даты и времени, см. в разделе Standard Date и Time Format Strings и пользовательские строки даты и времени формат.For the standard and custom format strings used with date and time values, see Standard Date and Time Format Strings and Custom Date and Time Format Strings. Стандартные и настраиваемые строки форматирования числовых значений, см. в разделе строки стандартных числовых форматов и пользовательские строки форматирования чисел.For the standard and custom format strings used with numeric values, see Standard Numeric Format Strings and Custom Numeric Format Strings. Строки стандартного формата, используемые для перечислений, см. в разделе строки форматов перечисления.For the standard format strings used with enumerations, see Enumeration Format Strings.

args Представляет объекты, которые необходимо отформатировать.args represents the objects to be formatted. Каждый элемент формата в format заменяется строковым представлением соответствующего объекта в args.Each format item in format is replaced with the string representation of the corresponding object in args. Если элемент формата включает formatString и соответствующего объекта в args реализует IFormattable интерфейс, затем args[index].ToString(formatString, provider) определяет форматирование.If the format item includes formatString and the corresponding object in args implements the IFormattable interface, then args[index].ToString(formatString, provider) defines the formatting. В противном случае args[index].ToString() определяет форматирование.Otherwise, args[index].ToString() defines the formatting.

Если строка, назначенная format является «Спасибо за пожертвование {0: ###} консервных банок нашей благотворительной организации.»If the string assigned to format is "Thank you for your donation of {0:####} cans of food to our charitable organization." и arg0 должно быть целым числом со значением 10, возвращаемое значение будет «Спасибо за пожертвование 10 консервных банок нашей благотворительной организации».and arg0 is an integer with the value 10, the return value will be "Thank you for your donation of 10 cans of food to our charitable organization."

Примечания для тех, кто вызывает этот метод

В .NET Core, а также в .NET Framework 4.0 и более поздних версий, при создании экземпляра StringBuilder путем вызова метода StringBuilder(Int32, Int32) конструктор, длина и емкость StringBuilder экземпляр может выйти за пределы значение его MaxCapacity свойство.In .NET Core and in the .NET Framework 4.0 and later versions, when you instantiate the StringBuilder object by calling the StringBuilder(Int32, Int32) constructor, both the length and the capacity of the StringBuilder instance can grow beyond the value of its MaxCapacity property. Это может произойти, особенно при вызове Append(String) и AppendFormat(String, Object) методы для добавления небольших строк.This can occur particularly when you call the Append(String) and AppendFormat(String, Object) methods to append small strings.

Дополнительно

AppendFormat(IFormatProvider, String, Object) AppendFormat(IFormatProvider, String, Object) AppendFormat(IFormatProvider, String, Object) AppendFormat(IFormatProvider, String, Object)

Добавляет к данному экземпляру строку, возвращаемую в результате обработки строки составного формата, содержащей ноль или более элементов формата.Appends the string returned by processing a composite format string, which contains zero or more format items, to this instance. Каждый элемент формата заменяется строковым представлением одного аргумента с использованием указанного поставщика формата.Each format item is replaced by the string representation of a single argument using a specified format provider.

public:
 System::Text::StringBuilder ^ AppendFormat(IFormatProvider ^ provider, System::String ^ format, System::Object ^ arg0);
public System.Text.StringBuilder AppendFormat (IFormatProvider provider, string format, object arg0);
member this.AppendFormat : IFormatProvider * string * obj -> System.Text.StringBuilder
Public Function AppendFormat (provider As IFormatProvider, format As String, arg0 As Object) As StringBuilder

Параметры

provider
IFormatProvider IFormatProvider IFormatProvider IFormatProvider

Объект, предоставляющий сведения о форматировании для определенного языка и региональных параметров.An object that supplies culture-specific formatting information.

format
String String String String

Строка составного формата.A composite format string.

arg0
Object Object Object Object

Объект для форматирования.The object to format.

Возвраты

Ссылка на этот экземпляр после завершения операции добавления.A reference to this instance after the append operation has completed. После операции добавления этот экземпляр содержит все данные, существовавшие до операции, к которым добавляется копия параметра format, где все спецификации форматирования заменяются представлением arg0.After the append operation, this instance contains any data that existed before the operation, suffixed by a copy of format in which any format specification is replaced by the string representation of arg0.

Исключения

format недопустим.format is invalid.

-или--or- Индекс элемента формата меньше нуля или больше либо равен единице.The index of a format item is less than 0 (zero), or greater than or equal to one (1).

Длина развернутой строки превысила бы MaxCapacity.The length of the expanded string would exceed MaxCapacity.

Примеры

Включает в себя следующие два вызова AppendFormat(IFormatProvider, String, Object) метод.The following includes two calls to the AppendFormat(IFormatProvider, String, Object) method. Используют соглашения о форматировании языка и региональных параметров Английский — Великобритания (en-GB).Both use the formatting conventions of the English-Great Britain (en-GB) culture. Первый Вставляет строковое представление Decimal значение валюты в результирующую строку.The first inserts the string representation of a Decimal value currency in a result string. Второй операции вставки DateTime значение в двух местах, в результате строки, первый включая только для краткосрочного Дата строки, а вторая строка короткого времени.The second inserts a DateTime value in two places in a result string, the first including only the short date string and the second the short time string.

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

public class Example
{
   public static void Main()
   {
      StringBuilder sb = new StringBuilder();
      Decimal value = 16.95m;
      CultureInfo enGB = CultureInfo.CreateSpecificCulture("en-GB");
      DateTime dateToday = DateTime.Now;
      sb.AppendFormat(enGB, "Final Price: {0:C2}", value);
      sb.AppendLine();
      sb.AppendFormat(enGB, "Date and Time: {0:d} at {0:t}", dateToday);
      Console.WriteLine(sb.ToString());
   }
}
// The example displays the following output:
//       Final Price: £16.95
//       Date and Time: 01/10/2014 at 10:22
Imports System.Globalization
Imports System.Text

Module Example
   Public Sub Main()
      Dim sb As New StringBuilder()
      Dim value As Decimal = 16.95d
      Dim enGB As CultureInfo = CultureInfo.CreateSpecificCulture("en-GB")
      Dim dateToday As DateTime = Date.Now
      sb.AppendFormat(enGB, "Final Price: {0:C2}", value)
      sb.AppendLine()
      sb.AppendFormat(enGB, "Date and Time: {0:d} at {0:t}", dateToday)
      Console.WriteLine(sb.ToString())
   End Sub
End Module
' The example displays output like the following:
'       Final Price: £16.95
'       Date and Time: 01/10/2014 at 10:22

Комментарии

Этот метод использует составного форматирования платформы .NET Framework для преобразования значения arg0 текстовое представление и встроить это представление в текущем StringBuilder объекта.This method uses the composite formatting feature of the .NET Framework to convert the value of arg0 to its text representation and embed that representation in the current StringBuilder object.

format Параметр состоит из нуля или более текста перемежающихся ноль или более индексированные местозаполнители, называются элементами форматирования.The format parameter consists of zero or more runs of text intermixed with zero or more indexed placeholders, called format items. Индекс каждого элемента форматирования должен равняться нулю (0), так как этот метод содержит список аргументов с одним аргументом.The index of each format item must be zero (0) since this method includes an argument list with a single argument. Процесс форматирования каждый элемент формата заменяется строковым представлением arg0.The formatting process replaces each format item with the string representation of arg0.

Синтаксис элемента формата выглядит следующим образом:The syntax of a format item is as follows:

{индекс[,длина] [:formatString]}{index[,length][:formatString]}

Элементы в квадратных скобках являются необязательными.Elements in square brackets are optional. Каждый из элементов описан в таблице ниже.The following table describes each element.

ЭлементElement ОписаниеDescription
Индексindex Отсчитываемый от нуля позиция в списке параметров объекта для форматирования.The zero-based position in the parameter list of the object to be formatted. Если объект, определенный параметром индексnull, элемент формата заменяется String.Empty.If the object specified by index is null, the format item is replaced by String.Empty. В этом случае с момента AppendFormat(IFormatProvider, String, Object) метод имеет один аргумент в списке аргументов, значение индекс всегда должен быть 0.In this case, since the AppendFormat(IFormatProvider, String, Object) method has a single argument in the argument list, the value of index must always be 0. Если это не так, FormatException возникает исключение.If it is not, a FormatException is thrown.
,длина,length Минимальное число символов в строковое представление параметра.The minimum number of characters in the string representation of the parameter. Если оно положительное, параметр по правому краю; Если оно отрицательное, оно по левому краю.If positive, the parameter is right-aligned; if negative, it is left-aligned.
:formatString:formatString Строка стандартного или настраиваемого формата, поддерживаемый параметр.A standard or custom format string that is supported by the parameter.

Примечание

Стандартные и настраиваемые строки форматирования значений даты и времени, см. в разделе Standard Date и Time Format Strings и пользовательские строки даты и времени формат.For the standard and custom format strings used with date and time values, see Standard Date and Time Format Strings and Custom Date and Time Format Strings. Стандартные и настраиваемые строки форматирования числовых значений, см. в разделе строки стандартных числовых форматов и пользовательские строки форматирования чисел.For the standard and custom format strings used with numeric values, see Standard Numeric Format Strings and Custom Numeric Format Strings. Строки стандартного формата, используемые для перечислений, см. в разделе строки форматов перечисления.For the standard format strings used with enumerations, see Enumeration Format Strings.

provider Параметр указывает IFormatProvider реализация, которую может предоставить сведения о форматировании для объектов в args.The provider parameter specifies an IFormatProvider implementation that can provide formatting information for the objects in args. Параметр provider может иметь любое из следующих значений.provider can be any of the following:

  • Объект CultureInfo объект, предоставляющий сведения о форматировании для определенного языка и региональных параметров.A CultureInfo object that provides culture-specific formatting information.

  • Объект NumberFormatInfo объект, предоставляющий сведения о форматировании региональных arg0 если он является числовым значением.A NumberFormatInfo object that provides culture-specific formatting information for arg0 if it is a numeric value.

  • Объект DateTimeFormatInfo объект, предоставляющий сведения о форматировании региональных arg0 Если это значение даты и времени.A DateTimeFormatInfo object that provides culture-specific formatting information for arg0 if it is a date and time value.

  • Пользовательский IFormatProvider реализация, которая предоставляет сведения о форматировании arg0.A custom IFormatProvider implementation that provides formatting information for arg0. Как правило, также реализует такой реализации ICustomFormatter интерфейс.Typically, such an implementation also implements the ICustomFormatter interface.

Если provider параметр null, форматирования сведения извлекаются из текущего языка и региональных параметров.If the provider parameter is null, formatting information is obtained from the current culture.

arg0 Представляет объект для форматирования.arg0 represents the object to be formatted. Каждый элемент формата в format заменяется строковым представлением arg0.Each format item in format is replaced with the string representation of arg0. Если элемент формата включает formatString и arg0 реализует IFormattable интерфейс, затем arg0.ToString(formatString, provider) определяет форматирование.If the format item includes formatString and arg0 implements the IFormattable interface, then arg0.ToString(formatString, provider) defines the formatting. В противном случае arg0.ToString() определяет форматирование.Otherwise, arg0.ToString() defines the formatting.

Примечания для тех, кто вызывает этот метод

В .NET Core, а также в .NET Framework 4.0 и более поздних версий, при создании экземпляра StringBuilder путем вызова метода StringBuilder(Int32, Int32) конструктор, длина и емкость StringBuilder экземпляр может выйти за пределы значение его MaxCapacity свойство.In .NET Core and in the .NET Framework 4.0 and later versions, when you instantiate the StringBuilder object by calling the StringBuilder(Int32, Int32) constructor, both the length and the capacity of the StringBuilder instance can grow beyond the value of its MaxCapacity property. Это может произойти, особенно при вызове Append(String) и AppendFormat(String, Object) методы для добавления небольших строк.This can occur particularly when you call the Append(String) and AppendFormat(String, Object) methods to append small strings.

Дополнительно

AppendFormat(IFormatProvider, String, Object[]) AppendFormat(IFormatProvider, String, Object[]) AppendFormat(IFormatProvider, String, Object[]) AppendFormat(IFormatProvider, String, Object[])

Добавляет к данному экземпляру строку, возвращаемую в результате обработки строки составного формата, содержащей ноль или более элементов формата.Appends the string returned by processing a composite format string, which contains zero or more format items, to this instance. Каждый элемент формата заменяется строковым представлением соответствующего аргумента в массиве параметров с помощью указанного поставщика формата.Each format item is replaced by the string representation of a corresponding argument in a parameter array using a specified format provider.

public:
 System::Text::StringBuilder ^ AppendFormat(IFormatProvider ^ provider, System::String ^ format, ... cli::array <System::Object ^> ^ args);
public System.Text.StringBuilder AppendFormat (IFormatProvider provider, string format, params object[] args);
member this.AppendFormat : IFormatProvider * string * obj[] -> System.Text.StringBuilder
Public Function AppendFormat (provider As IFormatProvider, format As String, ParamArray args As Object()) As StringBuilder

Параметры

provider
IFormatProvider IFormatProvider IFormatProvider IFormatProvider

Объект, предоставляющий сведения о форматировании для определенного языка и региональных параметров.An object that supplies culture-specific formatting information.

format
String String String String

Строка составного формата.A composite format string.

args
Object[]

Массив объектов для форматирования.An array of objects to format.

Возвраты

Ссылка на этот экземпляр после завершения операции добавления.A reference to this instance after the append operation has completed. После операции добавления этот экземпляр содержит все данные, существовавшие до операции, к которым добавляется копия параметра format, где все спецификации форматирования заменяются представлением строки соответствующего аргумента объекта.After the append operation, this instance contains any data that existed before the operation, suffixed by a copy of format where any format specification is replaced by the string representation of the corresponding object argument.

Исключения

format недопустим.format is invalid.

-или--or- Индекс элемента формата меньше нуля или больше либо равен длине массива args.The index of a format item is less than 0 (zero), or greater than or equal to the length of the args array.

Длина развернутой строки превысила бы MaxCapacity.The length of the expanded string would exceed MaxCapacity.

Примеры

В следующем примере демонстрируется AppendFormat метод.The following example demonstrates the AppendFormat method.

using namespace System;
using namespace System::Text;
using namespace System::Globalization;
void Show( StringBuilder^ sbs )
{
   Console::WriteLine( sbs );
   sbs->Length = 0;
}

int main()
{
   StringBuilder^ sb = gcnew StringBuilder;
   int var1 = 111;
   float var2 = 2.22F;
   String^ var3 = "abcd";
   array<Object^>^var4 = {3,4.4,(Char)'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 = gcnew CultureInfo( "es-ES",true );
   array<Object^>^temp1 = {var2};
   sb->AppendFormat( ci, "5) {0}", temp1 );
   Show( sb );
}

/*
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
*/
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
*/
Imports System
Imports System.Text
Imports System.Globalization

Class Sample
   Private Shared sb As New StringBuilder()

   Public Shared Sub Main()
      Dim var1 As Integer = 111
      Dim var2 As Single = 2.22F
      Dim var3 As String = "abcd"
      Dim var4 As Object() =  {3, 4.4, "X"c}
      
      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)
      Dim ci As New CultureInfo("es-ES", True)
      sb.AppendFormat(ci, "5) {0}", var2)
      Show(sb)
   End Sub 'Main
   
   Public Shared Sub Show(sbs As StringBuilder)
      Console.WriteLine(sbs.ToString())
      sb.Length = 0
   End Sub 'Show
End Class 'Sample
'
'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

В следующем примере определяется пользовательский IFormatProvider реализацию, именуемую CustomerFormatter , форматы чисел с дефисами клиента 10-значный после четвертая и седьмая цифр.The following example defines a custom IFormatProvider implementation named CustomerFormatter that formats a 10-digit customer number with hyphens after the fourth and seventh digits. Он передается StringBuilder.AppendFormat(IFormatProvider, String, Object[]) метод, чтобы создать строку, содержащую номер форматированный клиента и имя клиента.It is passed to the StringBuilder.AppendFormat(IFormatProvider, String, Object[]) method to create a string that includes the formatted customer number and customer name.

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
Imports System.Text

Public Class Customer
   Private custName As String
   Private custNumber As Integer
   
   Public Sub New(name As String, number As Integer)
      custName = name
      custNumber = number
   End Sub
   
   Public ReadOnly Property Name As String
      Get
         Return Me.custName
      End Get
   End Property
   
   Public ReadOnly Property CustomerNumber As Integer
      Get
         Return Me.custNumber
      End Get
   End Property
End Class

Public Class CustomerNumberFormatter 
   Implements IFormatProvider, ICustomFormatter
   
   Public Function GetFormat(formatType As Type) As Object _
                   Implements IFormatProvider.GetFormat
      If formatType Is GetType(ICustomFormatter) Then
         Return Me
      End If
      Return Nothing
   End Function
   
   Public Function Format(fmt As String, arg As Object, provider As IFormatProvider) As String _
                   Implements ICustomFormatter.Format
      If typeof arg Is Int32 Then
         Dim custNumber As String = CInt(arg).ToString("D10")
         Return custNumber.Substring(0, 4) + "-" + custNumber.SubString(4, 3) + _
                "-" + custNumber.Substring(7, 3)
      Else
         Return Nothing
      End If
   End Function                   
End Class

Module Example
   Public Sub Main()
      Dim customer As New Customer("A Plus Software", 903654)
      Dim sb As New StringBuilder()
      sb.AppendFormat(New CustomerNumberFormatter, "{0}: {1}", _
                      customer.CustomerNumber, customer.Name)
      Console.WriteLine(sb.ToString())
   End Sub
End Module
' The example displays the following output:
'      0000-903-654: A Plus Software

Комментарии

Этот метод использует составного форматирования платформы .NET Framework для преобразования значения объекта в текстовое представление и встроить это представление в текущем StringBuilder объекта.This method uses the composite formatting feature of the .NET Framework to convert the value of an object to its text representation and embed that representation in the current StringBuilder object.

format Параметр состоит из нуля или более текста перемежающихся ноль или более индексированные местозаполнители, называются элементами форматирования, которые соответствуют объектам в списке параметров этого метода.The format parameter consists of zero or more runs of text intermixed with zero or more indexed placeholders, called format items, that correspond to objects in the parameter list of this method. Процессе форматирования каждый элемент формата заменяется строковым представлением соответствующего объекта.The formatting process replaces each format item with the string representation of the corresponding object.

Синтаксис элемента формата выглядит следующим образом:The syntax of a format item is as follows:

{индекс[,длина] [:formatString]}{index[,length][:formatString]}

Элементы в квадратных скобках являются необязательными.Elements in square brackets are optional. Каждый из элементов описан в таблице ниже.The following table describes each element.

ЭлементElement ОписаниеDescription
Индексindex Отсчитываемый от нуля позиция в списке параметров объекта для форматирования.The zero-based position in the parameter list of the object to be formatted. Если объект, определенный параметром индексnull, элемент формата заменяется String.Empty.If the object specified by index is null, the format item is replaced by String.Empty. При отсутствии параметра в индекс позиции, FormatException возникает исключение.If there is no parameter in the index position, a FormatException is thrown.
,длина,length Минимальное число символов в строковое представление параметра.The minimum number of characters in the string representation of the parameter. Если оно положительное, параметр по правому краю; Если оно отрицательное, оно по левому краю.If positive, the parameter is right-aligned; if negative, it is left-aligned.
:formatString:formatString Строка стандартного или настраиваемого формата, поддерживаемый параметр.A standard or custom format string that is supported by the parameter.

Примечание

Стандартные и настраиваемые строки форматирования значений даты и времени, см. в разделе Standard Date и Time Format Strings и пользовательские строки даты и времени формат.For the standard and custom format strings used with date and time values, see Standard Date and Time Format Strings and Custom Date and Time Format Strings. Стандартные и настраиваемые строки форматирования числовых значений, см. в разделе строки стандартных числовых форматов и пользовательские строки форматирования чисел.For the standard and custom format strings used with numeric values, see Standard Numeric Format Strings and Custom Numeric Format Strings. Строки стандартного формата, используемые для перечислений, см. в разделе строки форматов перечисления.For the standard format strings used with enumerations, see Enumeration Format Strings.

provider Параметр указывает IFormatProvider реализация, которую может предоставить сведения о форматировании для объектов в args.The provider parameter specifies an IFormatProvider implementation that can provide formatting information for the objects in args. Параметр provider может иметь любое из следующих значений.provider can be any of the following:

  • Объект CultureInfo объект, предоставляющий сведения о форматировании для определенного языка и региональных параметров.A CultureInfo object that provides culture-specific formatting information.

  • Объект NumberFormatInfo объект, предоставляющий сведения об особенностях язык и региональные параметры форматирования для числовых значений в args.A NumberFormatInfo object that provides culture-specific formatting information for numeric values in args.

  • Объект DateTimeFormatInfo объект, предоставляющий сведения об особенностях язык и региональные параметры форматирования для значений даты и времени в args.A DateTimeFormatInfo object that provides culture-specific formatting information for date and time values in args.

  • Пользовательский IFormatProvider реализация, которая предоставляет сведения о форматировании для одного или нескольких объектов в args.A custom IFormatProvider implementation that provides formatting information for one or more of the objects in args. Как правило, также реализует такой реализации ICustomFormatter интерфейс.Typically, such an implementation also implements the ICustomFormatter interface. Во втором примере в следующем разделе показан StringBuilder.AppendFormat(IFormatProvider, String, Object[]) вызов метода с пользовательским IFormatProvider реализации.The second example in the next section illustrates an StringBuilder.AppendFormat(IFormatProvider, String, Object[]) method call with a custom IFormatProvider implementation.

Если provider параметр null, сведения о поставщике формата получается из текущего языка и региональных параметров.If the provider parameter is null, format provider information is obtained from the current culture.

args Представляет объекты, которые необходимо отформатировать.args represents the objects to be formatted. Каждый элемент формата в format заменяется строковым представлением соответствующего объекта в args.Each format item in format is replaced with the string representation of the corresponding object in args. Если элемент формата включает formatString и соответствующего объекта в args реализует IFormattable интерфейс, затем args[index].ToString(formatString, provider) определяет форматирование.If the format item includes formatString and the corresponding object in args implements the IFormattable interface, then args[index].ToString(formatString, provider) defines the formatting. В противном случае args[index].ToString() определяет форматирование.Otherwise, args[index].ToString() defines the formatting.

Примечания для тех, кто вызывает этот метод

В .NET Core, а также в .NET Framework 4.0 и более поздних версий, при создании экземпляра StringBuilder путем вызова метода StringBuilder(Int32, Int32) конструктор, длина и емкость StringBuilder экземпляр может выйти за пределы значение его MaxCapacity свойство.In .NET Core and in the .NET Framework 4.0 and later versions, when you instantiate the StringBuilder object by calling the StringBuilder(Int32, Int32) constructor, both the length and the capacity of the StringBuilder instance can grow beyond the value of its MaxCapacity property. Это может произойти, особенно при вызове Append(String) и AppendFormat(String, Object) методы для добавления небольших строк.This can occur particularly when you call the Append(String) and AppendFormat(String, Object) methods to append small strings.

Дополнительно

AppendFormat(String, Object, Object) AppendFormat(String, Object, Object) AppendFormat(String, Object, Object) AppendFormat(String, Object, Object)

Добавляет к данному экземпляру строку, возвращаемую в результате обработки строки составного формата, содержащей ноль или более элементов формата.Appends the string returned by processing a composite format string, which contains zero or more format items, to this instance. Каждый элемент формата заменяется строковым представлением любого из двух аргументов.Each format item is replaced by the string representation of either of two arguments.

public:
 System::Text::StringBuilder ^ AppendFormat(System::String ^ format, System::Object ^ arg0, System::Object ^ arg1);
public System.Text.StringBuilder AppendFormat (string format, object arg0, object arg1);
member this.AppendFormat : string * obj * obj -> System.Text.StringBuilder
Public Function AppendFormat (format As String, arg0 As Object, arg1 As Object) As StringBuilder

Параметры

format
String String String String

Строка составного формата.A composite format string.

arg0
Object Object Object Object

Первый объект для форматирования.The first object to format.

arg1
Object Object Object Object

Второй объект для форматирования.The second object to format.

Возвраты

Ссылка на данный экземпляр с добавленным format.A reference to this instance with format appended. Каждый элемент формата в параметре format заменяется строковым представлением соответствующего аргумента объекта.Each format item in format is replaced by the string representation of the corresponding object argument.

Исключения

format недопустим.format is invalid.

-или--or- Индекс элемента формата меньше нуля или больше либо равен двум.The index of a format item is less than 0 (zero), or greater than or equal to 2.

Длина развернутой строки превысила бы MaxCapacity.The length of the expanded string would exceed MaxCapacity.

Примеры

В следующем примере демонстрируется AppendFormat метод.The following example demonstrates the AppendFormat method.

using namespace System;
using namespace System::Text;
using namespace System::Globalization;
void Show( StringBuilder^ sbs )
{
   Console::WriteLine( sbs );
   sbs->Length = 0;
}

int main()
{
   StringBuilder^ sb = gcnew StringBuilder;
   int var1 = 111;
   float var2 = 2.22F;
   String^ var3 = "abcd";
   array<Object^>^var4 = {3,4.4,(Char)'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 = gcnew CultureInfo( "es-ES",true );
   array<Object^>^temp1 = {var2};
   sb->AppendFormat( ci, "5) {0}", temp1 );
   Show( sb );
}

/*
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
*/
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
*/
Imports System
Imports System.Text
Imports System.Globalization

Class Sample
   Private Shared sb As New StringBuilder()

   Public Shared Sub Main()
      Dim var1 As Integer = 111
      Dim var2 As Single = 2.22F
      Dim var3 As String = "abcd"
      Dim var4 As Object() =  {3, 4.4, "X"c}
      
      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)
      Dim ci As New CultureInfo("es-ES", True)
      sb.AppendFormat(ci, "5) {0}", var2)
      Show(sb)
   End Sub 'Main
   
   Public Shared Sub Show(sbs As StringBuilder)
      Console.WriteLine(sbs.ToString())
      sb.Length = 0
   End Sub 'Show
End Class 'Sample
'
'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

Комментарии

Этот метод использует составного форматирования платформы .NET Framework для преобразования значения объекта в текстовое представление и встроить это представление в текущем StringBuilder объекта.This method uses the composite formatting feature of the .NET Framework to convert the value of an object to its text representation and embed that representation in the current StringBuilder object.

format Параметр состоит из нуля или более текста перемежающихся ноль или более индексированные местозаполнители, называются элементами форматирования, которые соответствуют arg0 и arg1, два объекта в списке параметров этого метода.The format parameter consists of zero or more runs of text intermixed with zero or more indexed placeholders, called format items, that correspond to arg0 and arg1, the two objects in the parameter list of this method. Процессе форматирования каждый элемент формата заменяется строковым представлением соответствующего объекта.The formatting process replaces each format item with the string representation of the corresponding object.

Синтаксис элемента формата выглядит следующим образом:The syntax of a format item is as follows:

{индекс[,длина] [:formatString]}{index[,length][:formatString]}

Элементы в квадратных скобках являются необязательными.Elements in square brackets are optional. Каждый из элементов описан в таблице ниже.The following table describes each element.

ЭлементElement ОписаниеDescription
Индексindex Отсчитываемый от нуля позиция в списке параметров объекта для форматирования.The zero-based position in the parameter list of the object to be formatted. Если объект, определенный параметром индексnull, элемент формата заменяется String.Empty.If the object specified by index is null, the format item is replaced by String.Empty. При отсутствии параметра в индекс позиции, FormatException возникает исключение.If there is no parameter in the index position, a FormatException is thrown.
,длина,length Минимальное число символов в строковое представление параметра.The minimum number of characters in the string representation of the parameter. Если оно положительное, параметр по правому краю; Если оно отрицательное, оно по левому краю.If positive, the parameter is right-aligned; if negative, it is left-aligned.
:formatString:formatString Строка стандартного или настраиваемого формата, поддерживаемый параметр.A standard or custom format string that is supported by the parameter.

Примечание

Стандартные и настраиваемые строки форматирования значений даты и времени, см. в разделе Standard Date и Time Format Strings и пользовательские строки даты и времени формат.For the standard and custom format strings used with date and time values, see Standard Date and Time Format Strings and Custom Date and Time Format Strings. Стандартные и настраиваемые строки форматирования числовых значений, см. в разделе строки стандартных числовых форматов и пользовательские строки форматирования чисел.For the standard and custom format strings used with numeric values, see Standard Numeric Format Strings and Custom Numeric Format Strings. Строки стандартного формата, используемые для перечислений, см. в разделе строки форматов перечисления.For the standard format strings used with enumerations, see Enumeration Format Strings.

arg0 и arg1 представляют объекты, которые необходимо отформатировать.arg0 and arg1 represent the objects to be formatted. Каждый элемент формата в format заменяется строковым представлением любого arg0 или arg1.Each format item in format is replaced with the string representation of either arg0 or arg1. Если элемент формата включает formatString и соответствующий объект реализует IFormattable интерфейс, затем arg x .ToString(formatString, provider) определяет форматирование, где x — Это индекс аргумента.If the format item includes formatString and the corresponding object implements the IFormattable interface, then argx.ToString(formatString, provider) defines the formatting, where x is the index of the argument. В противном случае arg x .ToString() определяет форматирование.Otherwise, argx.ToString() defines the formatting.

Если строка, назначенная format является «Спасибо за пожертвование {0: ###} консервных банок нашей благотворительной организации.»If the string assigned to format is "Thank you for your donation of {0:####} cans of food to our charitable organization." и arg0 должно быть целым числом со значением 10, возвращаемое значение будет «Спасибо за пожертвование 10 консервных банок нашей благотворительной организации».and arg0 is an integer with the value 10, the return value will be "Thank you for your donation of 10 cans of food to our charitable organization."

Примечания для тех, кто вызывает этот метод

В .NET Core, а также в .NET Framework 4.0 и более поздних версий, при создании экземпляра StringBuilder путем вызова метода StringBuilder(Int32, Int32) конструктор, длина и емкость StringBuilder экземпляр может выйти за пределы значение его MaxCapacity свойство.In .NET Core and in the .NET Framework 4.0 and later versions, when you instantiate the StringBuilder object by calling the StringBuilder(Int32, Int32) constructor, both the length and the capacity of the StringBuilder instance can grow beyond the value of its MaxCapacity property. Это может произойти, особенно при вызове Append(String) и AppendFormat(String, Object) методы для добавления небольших строк.This can occur particularly when you call the Append(String) and AppendFormat(String, Object) methods to append small strings.

Дополнительно

AppendFormat(IFormatProvider, String, Object, Object) AppendFormat(IFormatProvider, String, Object, Object) AppendFormat(IFormatProvider, String, Object, Object) AppendFormat(IFormatProvider, String, Object, Object)

Добавляет к данному экземпляру строку, возвращаемую в результате обработки строки составного формата, содержащей ноль или более элементов формата.Appends the string returned by processing a composite format string, which contains zero or more format items, to this instance. Каждый элемент формата заменяется строковым представлением любого из двух аргументов с помощью указанного поставщика формата.Each format item is replaced by the string representation of either of two arguments using a specified format provider.

public:
 System::Text::StringBuilder ^ AppendFormat(IFormatProvider ^ provider, System::String ^ format, System::Object ^ arg0, System::Object ^ arg1);
public System.Text.StringBuilder AppendFormat (IFormatProvider provider, string format, object arg0, object arg1);
member this.AppendFormat : IFormatProvider * string * obj * obj -> System.Text.StringBuilder
Public Function AppendFormat (provider As IFormatProvider, format As String, arg0 As Object, arg1 As Object) As StringBuilder

Параметры

provider
IFormatProvider IFormatProvider IFormatProvider IFormatProvider

Объект, предоставляющий сведения о форматировании для определенного языка и региональных параметров.An object that supplies culture-specific formatting information.

format
String String String String

Строка составного формата.A composite format string.

arg0
Object Object Object Object

Первый объект для форматирования.The first object to format.

arg1
Object Object Object Object

Второй объект для форматирования.The second object to format.

Возвраты

Ссылка на этот экземпляр после завершения операции добавления.A reference to this instance after the append operation has completed. После операции добавления этот экземпляр содержит все данные, существовавшие до операции, к которым добавляется копия параметра format, где все спецификации форматирования заменяются представлением строки соответствующего аргумента объекта.After the append operation, this instance contains any data that existed before the operation, suffixed by a copy of format where any format specification is replaced by the string representation of the corresponding object argument.

Исключения

format недопустим.format is invalid.

-или--or- Индекс элемента формата меньше нуля или больше либо равен двум.The index of a format item is less than 0 (zero), or greater than or equal to 2 (two).

Длина развернутой строки превысила бы MaxCapacity.The length of the expanded string would exceed MaxCapacity.

Примеры

В следующем примере используется AppendFormat(IFormatProvider, String, Object, Object) метод для отображения данных температуры и времени, хранящиеся в универсальной Dictionary<TKey,TValue> объекта.The following example uses the AppendFormat(IFormatProvider, String, Object, Object) method to display time and temperature data stored in a generic Dictionary<TKey,TValue> object. Обратите внимание на то, что строка формата имеет три элемента форматирования, несмотря на то, что существует только для объектов для форматирования.Note that the format string has three format items, although there are only to objects to format. Это, так как первый объект в списке (значение даты и времени) используются элементы два формата: Первый формат элемента отображает время, а вторая отображает дату.This is because the first object in the list (a date and time value) is used by two format items: The first format item displays the time, and the second displays the date.

using System;
using System.Collections.Generic;
using System.Globalization;
using System.Text;

public class Example
{
   public static void Main()
   {
      CultureInfo culture = new CultureInfo("en-US");
      StringBuilder sb = new StringBuilder();
      Dictionary<DateTime, Double> temperatureInfo = new Dictionary<DateTime, Double>(); 
      temperatureInfo.Add(new DateTime(2010, 6, 1, 14, 0, 0), 87.46);
      temperatureInfo.Add(new DateTime(2010, 12, 1, 10, 0, 0), 36.81);
      

      sb.AppendLine("Temperature Information:\n");
      foreach (var item in temperatureInfo)
      {
         sb.AppendFormat(culture,
                         "Temperature at {0,8:t} on {0,9:d}: {1,5:N1}°F\n",
                         item.Key, item.Value);
      }
      Console.WriteLine(sb.ToString());
   }
}
// The example displays the following output:
//       Temperature Information:
//       
//       Temperature at  2:00 PM on  6/1/2010:  87.5°F
//       Temperature at 10:00 AM on 12/1/2010:  36.8°F
Imports System.Collections.Generic
Imports System.Globalization
Imports System.Text

Module Example
   Public Sub Main()
      Dim culture As New CultureInfo("en-US")
      Dim sb As New StringBuilder()
      Dim temperatureInfo As New Dictionary(Of Date, Double) 
      temperatureInfo.Add(#6/1/2010 2:00PM#, 87.46)
      temperatureInfo.Add(#12/1/2010 10:00AM#, 36.81)
      
      sb.AppendLine("Temperature Information:").AppendLine()
      For Each item In temperatureInfo
         sb.AppendFormat(culture,
                         "Temperature at {0,8:t} on {0,9:d}: {1,5:N1}°F",
                         item.Key, item.Value).AppendLine()
      Next
      Console.WriteLine(sb.ToString())
   End Sub
End Module
' The example displays the following output:
'       Temperature Information:
'       
'       Temperature at  2:00 PM on  6/1/2010:  87.5°F
'       Temperature at 10:00 AM on 12/1/2010:  36.8°F

Комментарии

Этот метод использует составного форматирования платформы .NET Framework для преобразования значения объекта в текстовое представление и встроить это представление в текущем StringBuilder объекта.This method uses the composite formatting feature of the .NET Framework to convert the value of an object to its text representation and embed that representation in the current StringBuilder object.

format Параметр состоит из нуля или более текста перемежающихся ноль или более индексированные местозаполнители, называются элементами форматирования, которые соответствуют объектам в списке параметров этого метода.The format parameter consists of zero or more runs of text intermixed with zero or more indexed placeholders, called format items, that correspond to objects in the parameter list of this method. Процессе форматирования каждый элемент формата заменяется строковым представлением соответствующего объекта.The formatting process replaces each format item with the string representation of the corresponding object.

Синтаксис элемента формата выглядит следующим образом:The syntax of a format item is as follows:

{индекс[,длина] [:formatString]}{index[,length][:formatString]}

Элементы в квадратных скобках являются необязательными.Elements in square brackets are optional. Каждый из элементов описан в таблице ниже.The following table describes each element.

ЭлементElement ОписаниеDescription
Индексindex Отсчитываемый от нуля позиция в списке параметров объекта для форматирования.The zero-based position in the parameter list of the object to be formatted. Если объект, определенный параметром индексnull, элемент формата заменяется String.Empty.If the object specified by index is null, the format item is replaced by String.Empty. При отсутствии параметра в индекс позиции, FormatException возникает исключение.If there is no parameter in the index position, a FormatException is thrown.
,длина,length Минимальное число символов в строковое представление параметра.The minimum number of characters in the string representation of the parameter. Если оно положительное, параметр по правому краю; Если оно отрицательное, оно по левому краю.If positive, the parameter is right-aligned; if negative, it is left-aligned.
:formatString:formatString Строка стандартного или настраиваемого формата, поддерживаемый параметр.A standard or custom format string that is supported by the parameter.

Примечание

Стандартные и настраиваемые строки форматирования значений даты и времени, см. в разделе Standard Date и Time Format Strings и пользовательские строки даты и времени формат.For the standard and custom format strings used with date and time values, see Standard Date and Time Format Strings and Custom Date and Time Format Strings. Стандартные и настраиваемые строки форматирования числовых значений, см. в разделе строки стандартных числовых форматов и пользовательские строки форматирования чисел.For the standard and custom format strings used with numeric values, see Standard Numeric Format Strings and Custom Numeric Format Strings. Строки стандартного формата, используемые для перечислений, см. в разделе строки форматов перечисления.For the standard format strings used with enumerations, see Enumeration Format Strings.

provider Параметр указывает IFormatProvider реализация, которую может предоставить сведения о форматировании arg0 и arg1.The provider parameter specifies an IFormatProvider implementation that can provide formatting information for arg0 and arg1. Параметр provider может иметь любое из следующих значений.provider can be any of the following:

  • Объект CultureInfo объект, предоставляющий сведения о форматировании для определенного языка и региональных параметров.A CultureInfo object that provides culture-specific formatting information.

  • Объект NumberFormatInfo объект, предоставляющий сведения о форматировании региональных arg0 или arg1 если они являются числовыми значениями.A NumberFormatInfo object that provides culture-specific formatting information for arg0 or arg1 if they are numeric values.

  • Объект DateTimeFormatInfo объект, предоставляющий сведения о форматировании региональных arg0 или arg1 если они значений даты и времени.A DateTimeFormatInfo object that provides culture-specific formatting information for arg0 or arg1 if they are date and time values.

  • Пользовательский IFormatProvider реализация, которая предоставляет сведения о форматировании arg0 и arg1.A custom IFormatProvider implementation that provides formatting information for arg0 and arg1. Как правило, также реализует такой реализации ICustomFormatter интерфейс.Typically, such an implementation also implements the ICustomFormatter interface.

Если provider параметр null, сведения о поставщике формата получается из текущего языка и региональных параметров.If the provider parameter is null, format provider information is obtained from the current culture.

arg0 и arg1 представляют объекты, которые необходимо отформатировать.arg0 and arg1 represent the objects to be formatted. Каждый элемент формата в format заменяется строковым представлением объект, имеющий соответствующий индекс.Each format item in format is replaced with the string representation of the object that has the corresponding index. Если элемент формата включает formatString и соответствующий аргумент реализует IFormattable интерфейс, а затем аргумента ToString(formatString, provider) метод определяет форматирование.If the format item includes formatString and the corresponding argument implements the IFormattable interface, then the argument's ToString(formatString, provider) method defines the formatting. В противном случае аргумент ToString() метод определяет форматирование.Otherwise, the argument's ToString() method defines the formatting.

Примечания для тех, кто вызывает этот метод

В .NET Core и .NET Framework 4.0 и более поздних версий, при создании экземпляра StringBuilder путем вызова метода StringBuilder(Int32, Int32) конструктор, длина и емкость StringBuilder экземпляр может выйти за пределы значение его MaxCapacity свойство.IIn .NET Core and in the .NET Framework 4.0 and later versions, when you instantiate the StringBuilder object by calling the StringBuilder(Int32, Int32) constructor, both the length and the capacity of the StringBuilder instance can grow beyond the value of its MaxCapacity property. Это может произойти, особенно при вызове Append(String) и AppendFormat(String, Object) методы для добавления небольших строк.This can occur particularly when you call the Append(String) and AppendFormat(String, Object) methods to append small strings.

Дополнительно

AppendFormat(String, Object, Object, Object) AppendFormat(String, Object, Object, Object) AppendFormat(String, Object, Object, Object) AppendFormat(String, Object, Object, Object)

Добавляет к данному экземпляру строку, возвращаемую в результате обработки строки составного формата, содержащей ноль или более элементов формата.Appends the string returned by processing a composite format string, which contains zero or more format items, to this instance. Каждый элемент формата заменяется строковым представлением любого из трех аргументов.Each format item is replaced by the string representation of either of three arguments.

public:
 System::Text::StringBuilder ^ AppendFormat(System::String ^ format, System::Object ^ arg0, System::Object ^ arg1, System::Object ^ arg2);
public System.Text.StringBuilder AppendFormat (string format, object arg0, object arg1, object arg2);
member this.AppendFormat : string * obj * obj * obj -> System.Text.StringBuilder
Public Function AppendFormat (format As String, arg0 As Object, arg1 As Object, arg2 As Object) As StringBuilder

Параметры

format
String String String String

Строка составного формата.A composite format string.

arg0
Object Object Object Object

Первый объект для форматирования.The first object to format.

arg1
Object Object Object Object

Второй объект для форматирования.The second object to format.

arg2
Object Object Object Object

Третий объект для форматирования.The third object to format.

Возвраты

Ссылка на данный экземпляр с добавленным format.A reference to this instance with format appended. Каждый элемент формата в параметре format заменяется строковым представлением соответствующего аргумента объекта.Each format item in format is replaced by the string representation of the corresponding object argument.

Исключения

format недопустим.format is invalid.

-или--or- Индекс элемента формата меньше нуля либо больше или равен 3.The index of a format item is less than 0 (zero), or greater than or equal to 3.

Длина развернутой строки превысила бы MaxCapacity.The length of the expanded string would exceed MaxCapacity.

Примеры

В следующем примере демонстрируется AppendFormat метод.The following example demonstrates the AppendFormat method.

using namespace System;
using namespace System::Text;
using namespace System::Globalization;
void Show( StringBuilder^ sbs )
{
   Console::WriteLine( sbs );
   sbs->Length = 0;
}

int main()
{
   StringBuilder^ sb = gcnew StringBuilder;
   int var1 = 111;
   float var2 = 2.22F;
   String^ var3 = "abcd";
   array<Object^>^var4 = {3,4.4,(Char)'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 = gcnew CultureInfo( "es-ES",true );
   array<Object^>^temp1 = {var2};
   sb->AppendFormat( ci, "5) {0}", temp1 );
   Show( sb );
}

/*
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
*/
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
*/
Imports System
Imports System.Text
Imports System.Globalization

Class Sample
   Private Shared sb As New StringBuilder()

   Public Shared Sub Main()
      Dim var1 As Integer = 111
      Dim var2 As Single = 2.22F
      Dim var3 As String = "abcd"
      Dim var4 As Object() =  {3, 4.4, "X"c}
      
      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)
      Dim ci As New CultureInfo("es-ES", True)
      sb.AppendFormat(ci, "5) {0}", var2)
      Show(sb)
   End Sub 'Main
   
   Public Shared Sub Show(sbs As StringBuilder)
      Console.WriteLine(sbs.ToString())
      sb.Length = 0
   End Sub 'Show
End Class 'Sample
'
'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

Комментарии

Этот метод использует составного форматирования платформы .NET Framework для преобразования значения объекта в текстовое представление и встроить это представление в текущем StringBuilder объекта.This method uses the composite formatting feature of the .NET Framework to convert the value of an object to its text representation and embed that representation in the current StringBuilder object.

format Параметр состоит из нуля или более текста перемежающихся ноль или более индексированные местозаполнители, называются элементами форматирования, которые соответствуют arg0 через arg2, объекты в списке параметров этого метода.The format parameter consists of zero or more runs of text intermixed with zero or more indexed placeholders, called format items, that correspond to arg0 through arg2, the objects in the parameter list of this method. Процессе форматирования каждый элемент формата заменяется строковым представлением соответствующего объекта.The formatting process replaces each format item with the string representation of the corresponding object.

Синтаксис элемента формата выглядит следующим образом:The syntax of a format item is as follows:

{индекс[,длина] [:formatString]}{index[,length][:formatString]}

Элементы в квадратных скобках являются необязательными.Elements in square brackets are optional. Каждый из элементов описан в таблице ниже.The following table describes each element.

ЭлементElement ОписаниеDescription
Индексindex Отсчитываемый от нуля позиция в списке параметров объекта для форматирования.The zero-based position in the parameter list of the object to be formatted. Если объект, определенный параметром индексnull, элемент формата заменяется String.Empty.If the object specified by index is null, the format item is replaced by String.Empty. При отсутствии параметра в индекс позиции, FormatException возникает исключение.If there is no parameter in the index position, a FormatException is thrown.
,длина,length Минимальное число символов в строковое представление параметра.The minimum number of characters in the string representation of the parameter. Если оно положительное, параметр по правому краю; Если оно отрицательное, оно по левому краю.If positive, the parameter is right-aligned; if negative, it is left-aligned.
:formatString:formatString Строка стандартного или настраиваемого формата, поддерживаемый параметр.A standard or custom format string that is supported by the parameter.

Примечание

Стандартные и настраиваемые строки форматирования значений даты и времени, см. в разделе Standard Date и Time Format Strings и пользовательские строки даты и времени формат.For the standard and custom format strings used with date and time values, see Standard Date and Time Format Strings and Custom Date and Time Format Strings. Стандартные и настраиваемые строки форматирования числовых значений, см. в разделе строки стандартных числовых форматов и пользовательские строки форматирования чисел.For the standard and custom format strings used with numeric values, see Standard Numeric Format Strings and Custom Numeric Format Strings. Строки стандартного формата, используемые для перечислений, см. в разделе строки форматов перечисления.For the standard format strings used with enumerations, see Enumeration Format Strings.

arg0, arg1, и arg2 представляют объекты, которые необходимо отформатировать.arg0, arg1, and arg2 represent the objects to be formatted. Каждый элемент формата в format заменяется строковым представлением любого arg0, arg1, или arg2в зависимости от индекса элемента форматирования.Each format item in format is replaced with the string representation of either arg0, arg1, or arg2, depending on the index of the format item. Если элемент формата включает formatString и соответствующего объекта в args реализует IFormattable интерфейс, затем arg x .ToString(formatString, null) определяет форматирование, где x — это индекс аргумента.If the format item includes formatString and the corresponding object in args implements the IFormattable interface, then argx.ToString(formatString, null) defines the formatting, where x is the index of the argument. В противном случае arg x .ToString() определяет форматирование.Otherwise, argx.ToString() defines the formatting.

Если строка, назначенная format является «Спасибо за пожертвование {0: ###} консервных банок нашей благотворительной организации.»If the string assigned to format is "Thank you for your donation of {0:####} cans of food to our charitable organization." и arg0 должно быть целым числом со значением 10, возвращаемое значение будет «Спасибо за пожертвование 10 консервных банок нашей благотворительной организации».and arg0 is an integer with the value 10, the return value will be "Thank you for your donation of 10 cans of food to our charitable organization."

Примечания для тех, кто вызывает этот метод

В .NET Core, а также в .NET Framework 4.0 и более поздних версий, при создании экземпляра StringBuilder путем вызова метода StringBuilder(Int32, Int32) конструктор, длина и емкость StringBuilder экземпляр может выйти за пределы значение его MaxCapacity свойство.In .NET Core and in the .NET Framework 4.0 and later versions, when you instantiate the StringBuilder object by calling the StringBuilder(Int32, Int32) constructor, both the length and the capacity of the StringBuilder instance can grow beyond the value of its MaxCapacity property. Это может произойти, особенно при вызове Append(String) и AppendFormat(String, Object) методы для добавления небольших строк.This can occur particularly when you call the Append(String) and AppendFormat(String, Object) methods to append small strings.

Дополнительно

Применяется к