Символы форматирования добавляются к заполнителям в виде суффиксов после двоеточия (например, {0:С}
, {1:d}
, {2:X}
). В целях иллюстрации измените метод Main
для вызова нового вспомогательного метода по имени FormatNumericalData
, реализация которого в классе Program
форматирует фиксированное числовое значение несколькими способами.
// Демонстрация применения некоторых дескрипторов формата,
static void FormatNumericalData
{
Console.WriteLine("The value 99999 in various formats:");
Console.WriteLine("c format: {0:c}", 99999);
Console.WriteLine("d9 format: {0:d9}", 99999);
Console.WriteLine("f3 format: {0:f3}", 99999);
Console.WriteLine("n format: {0:n}", 99999);
// Обратите внимание, что использование для символа
// шестнадцатеричного формата верхнего или нижнего регистра
// определяет регистр отображаемых символов.
Console.WriteLine("E format: {0:E}", 99999);
Console.WriteLine("e format: {0:e}", 99999);
Console.WriteLine("X format: {0:X}", 99999);
Console.WriteLine("x format: {0:x}", 99999);
}
Ниже показан вывод, получаемый в результате вызова метода FormatNumericalData
.
The value 99999 in various formats:
c format: $99,999.00
d9 format: 000099999
f3 format: 99999.000
n format: 99,999.00
E format: 9.999900E+004
e format: 9.999900e+004
X format: 1869F
x format: 1869f
В дальнейшем будут встречаться и другие примеры форматирования; если вас интересуют дополнительные сведения о форматировании строк, тогда обратитесь в документацию по .NET Core (https://docs.microsoft.com/ru-ru/dotnet/standard/base-types/formatting-types
).
Форматирование числовых данных за рамками консольных приложений
Напоследок следует отметить, что применение символов форматирования строк не ограничено консольными приложениями. Тот же самый синтаксис форматирования может быть использован при вызове статического метода string.Format
. Прием удобен, когда необходимо формировать выходные текстовые данные во время выполнения в приложении любого типа (например, в настольном приложении с графическим пользовательским интерфейсом, веб-приложении ASP.NET Core и т.д.).
Метод string.Format
возвращает новый объект string
, который форматируется согласно предоставляемым флагам. Приведенный ниже код форматирует строку с шестнадцатеричным представлением числа:
// Использование string.Format для форматирования строкового литерала.
string userMessage = string.Format("100000 in hex is {0:x}", 100000);
Работа с системными типами данных и соответствующими ключевыми словами C#
Подобно любому языку программирования для фундаментальных типов данных в C# определены ключевые слова, которые используются при представлении локальных переменных, переменных-членов данных в классах, возвращаемых значений и параметров методов. Тем не менее, в отличие от других языков программирования такие ключевые слова в C# являются чем-то большим, нежели просто лексемами, распознаваемыми компилятором. В действительности они представляют собой сокращенные обозначения полноценных типов из пространства имен System
. В табл. 3.4 перечислены системные типы данных вместе с их диапазонами значений, соответствующими ключевыми словами C# и сведениями о совместимости с общеязыковой спецификацией (CLS). Все системные типы находятся в пространстве имен System, которое ради удобства чтения не указывается.
На заметку! Вспомните из главы 1, что совместимый с CLS код .NET Core может быть задействован в любом другом управляемом языке программирования .NET Core. Если в программах открыт доступ к данным, не совместимым с CLS, тогда другие языки .NET Core могут быть не в состоянии их использовать.
Объявление и инициализация переменных
Бьерн Страуструп , Бьёрн Страуструп , Валерий Федорович Альмухаметов , Ирина Сергеевна Козлова
Программирование, программы, базы данных / Базы данных / Программирование / Учебная и научная литература / Образование и наука / Книги по IT