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



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

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

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

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


Format Specifiers

The .NET Framework defines standard and custom format specifiers for formatting numbers, dates and times, and enumerations. Format specifiers are used by various methods that format output strings, such as Console..::.WriteLine and the individual overloads of the ToString method of certain types, and by some methods that parse input strings, such as Parse and DateTime..::.ParseExact.

Parsing and Format Specifiers

Formatting converts the value of a type into a string representation; parsing, the inverse of formatting, creates a data type from a string representation. A format provider governs how parsing is performed, and some methods, such as DateTime..::.ParseExact, take a format specifier parameter that indicates the expected format of the string representation.

ToString and Format Specifiers

The .NET Framework supports overloading a type's default ToString method, which performs rudimentary formatting, with a specialized version of ToString that uses a format specifier parameter to indicate how the value is to be formatted

 


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

Для форматирования чисел, дат, времени и перечислений в платформе .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.

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

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

 


Formatting Base Types

Use formatting to convert a standard .NET Framework data type to a string that represents that type in some meaningful way. For example, if you have an integer value of 100 that you want to represent as a currency value, you can use the ToString method and the currency format string ("C") to produce a string of "$100.00". Note that computers that do not have U.S. English specified as the current culture will display whatever currency notation is used by the current culture.

To format a base type, pass the desired format specifier, the desired format provider, or both to the ToString method of the object you want to format. If you do not specify a format specifier, or if you pass null, then "G" (the general format) is used as the default. If you do not specify a format provider, if you pass null, or if the provider you specify does not have the property pertaining to the requested action, the format provider associated with the current thread is used.

In the following example, the ToString method displays the value 100 as a currency-formatted string to the console.

int MyInt = 100; String MyString = MyInt.ToString("C"); Console.WriteLine(MyString);

 


Форматирование базовых типов

Форматирование служит для преобразования стандартных типов данных .NET Framework в строку и последующего отображения. Например, чтобы отобразить целое значение 100 в виде денежных единиц, воспользуйтесь методом ToString и строкой формата денежных единиц ("С"), чтобы создать строку "$100.00". Обратите внимание, что на компьютерах с выбранным языком и региональными параметрами, отличным от "Английского (США)", эта строка будет отображена в условных единицах установленного языком и региональными параметрами.

Чтобы отформатировать базовый тип, при вызове метода ToString для требуемого вида следует задать спецификатор формата и/или поставщика формата. Если спецификатор формата не задан или в качестве параметра передано значение null, то по умолчанию будет использован указатель "G" (общий формат). Если поставщик формата не задан, или в качестве параметра передано значение null, или если для поставщика не заданы требуемые для выполнения форматирования свойства, то будет использован поставщик формата, связанный с текущим потоком.

В следующем примере метод ToString показывает значение 100 как строку денежного формата на консоли.

int MyInt = 100; String MyString = MyInt.ToString("C"); Console.WriteLine(MyString);

 


Дата добавления: 2019-03-09; просмотров: 233; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!