Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
CSharp_Prog_Guide.doc
Скачиваний:
16
Добавлен:
16.11.2019
Размер:
6.22 Mб
Скачать

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

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

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

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

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

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

Format Providers

Format providers supply information such as the character to use as the decimal point when formatting numeric strings, or the separation character to use when formatting a DateTime object. Format providers define the characters used for formatting by the format specifiers, but do not define the specifiers themselves.

A format provider can either be passed to the overload of ToString required by the IFormattable interface, or be predetermined by the method you are using to format text if no format provider is passed.

When no format provider is passed, the information is either inferred, or obtained from one of the standard format providers included in the .NET Framework. Generally, classes that implement IFormattable also provide overloads of ToString that accept only a format specifier or only a format provider. The default ToString method, which accepts no parameters, is inherited from the Object class.

Composite Formatting

The .NET Framework composite formatting feature, which is supported by methods such as String..::.Format and the output methods of System..::.Console and System.IO..::.TextWriter, replaces each indexed format item embedded in a source string with the formatted equivalent of a corresponding element in a list of values.

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

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

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

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