Общие сведения о форматировании

Обновлен: Ноябрь 2007

Платформа .NET Framework предоставляет универсальный, настраиваемый механизм преобразования какого-либо значения в строку, подходящую для отображения. Например, числовое значение может быть представлено в шестнадцатеричном виде, научном представлении или в виде последовательности цифр, разделенных на группы знаком препинания, поставленным пользователем. Время и даты могут отображаться в форматах, соответствующих стандартам определенной страны, региона или культуры. Перечисляемая константа может быть представлена в виде ее числового значения или названия.

Форматированием можно управлять, задав строку формата и выбрав поставщика формата, или используя настройки по умолчанию. Строка формата содержит один или несколько описателей формата, определяющих, каким образом осуществляется преобразование значения. Дополнительные параметры форматирования и сведения о языке и региональных параметрах, необходимых для форматирования, передаются поставщиком формата.

Можно изменить способ, которым платформа .NET Framework преобразовывает строку формата, используя интерфейс IFormattable определить собственного поставщика формата, используя интерфейс IFormatProvider, выполнить собственное форматирование, используя интерфейс ICustomFormatter.

Платформа .NET Framework обеспечивает функцию, называемую составным форматированием, которая позволяет совместить в конечной строке несколько отформатированных значений из одной или нескольких строк формата. Данные конечной строки можно использовать для дальнейшей обработки данных, отображаемых в системной консоли или выводить в поток.

Описатели формата

Для форматирования чисел, дат, времени и перечислений в платформе .NET Framework определены стандартные и настраиваемые описатели формата. Описатели формата используются в различных средствах, форматирующих выходные строки, таких как Console.WriteLine и в отдельных верхних загрузках средств ToString определенных типов, и некоторыми средствами, выполняющими анализ входной строки, например Parse и DateTime.ParseExact.

Сведения о форматировании числовых данных см. в разделе Строки числовых форматов. Таблицу часто используемых описателей числовых форматов см. в разделе Стандартная строка числового формата, таблица настраиваемых описателей форматов, которые можно использовать для создания собственной строки формата, находится в разделе Строки настраиваемых числовых форматов.

Сведения о форматировании дат и времени см. в разделе Строки формата даты и времени. Таблицу часто используемых описателей форматов даты и времени см. в разделе Строки стандартного формата DateTime, таблицу настраиваемых описателей форматов даты и времени, которые можно использовать для создания собственного формата строки, см. в разделе Строки пользовательского формата DateTime.

Сведения о выполнении некоторых операций форматирования, таких как извлечение дня недели из определенной даты или отображение дат календарей, отличных от григорианского, см. в разделе Руководства по форматированию.

Сведения о форматировании перечислений, а также таблицу описателей стандартных форматов перечислений см. в разделе Строки форматов перечисления.

Анализ и описатели формата

С помощью форматирования различные типы данных преобразуются в строки; с помощью анализа, обратной операции, строки преобразуются в различные типы данных. Параметры анализа задаются поставщиком формата и некоторыми средствами, например DateTime.ParseExact, использует параметр описателя формата, который указывает ожидаемый формат представления строки. Дополнительные сведения о процессе анализа см. в разделе Анализ строк.

Метод ToString и описатели формата

Платформа .NET Framework поддерживает перегрузку метода типа по умолчанию ToString, выполняющего элементарное форматирование, используя для этого специальную версию метода ToString, использующего параметр описателя формата для указания как нужно форматировать значение. Дополнительные сведения см. в разделе Форматирование базовых типов и в интерфейсе IFormattable.

Поставщики формата

Поставщики формата предоставляют такие данные как знак, используемый в качестве десятичной запятой при форматировании числовых строк, или знак разделения, используемый при форматировании объекта DateTime. Поставщики формата определяют знаки, применяемые при форматировании, но не сами описатели формата.

Поставщик формата также может быть передан либо перегрузке метода ToString необходимого интерфейсу IFormattable, либо, если поставщик формата не передается, то он может быть предварительно определен с помощью метода, который используется для форматирования текста.

Если поставщик формата не был передан, то для получения требуемых сведений используются стандартные поставщики формата, включенные в состав платформы .NET Framework. Классы, в которых реализован интерфейс IFormattable, предоставляют переопределенный метод ToString, передавать которому можно либо описатель формата, либо поставщик формата. Метод по умолчанию ToString, который не принимает параметры, наследуется от класса Object.

Сведения о предопределенном поставщике формата для числовых данных см. в разделе NumberFormatInfo. Сведения о предопределенном поставщике формата даты и времени см. в разделе DateTimeFormatInfo. Сведения о создании настраиваемого поставщика формата, или поставщика формата для разных языков и региональных параметров, см. в разделах CultureInfo, Форматирование для различных культур, и Практическое руководство. Определение и использование настраиваемых поставщиков числовых форматов.

Составное форматирование

Функция составного форматирования .NET Framework, которая поддерживается такими методами, как String.Format, методами вывода System.Console и System.IO.TextWriter, заменяет каждый встроенный в исходную строку индексированный элемент форматирования отформатированным эквивалентом соответствующего элемента в списке значений. Дополнительные сведения см. в разделе Составное форматирование.

См. также

Основные понятия

Строки числовых форматов

Строки форматов даты и времени

Строки форматов перечисления

Настройка форматов строк

Составное форматирование

Руководства по форматированию

Ссылки

IFormattable

IFormatProvider

ICustomFormatter

Другие ресурсы

Типы форматирования

Разбор строк

Основные операции со строками