Рейтинговые книги
Читем онлайн Язык программирования C#9 и платформа .NET5 - Троелсен Эндрю

Шрифт:

-
+

Интервал:

-
+

Закладка:

Сделать
1 ... 48 49 50 51 52 53 54 55 56 ... 642

static void GetUserData()

{

  <b>// Получить информацию об имени и возрасте.</b>

  Console.Write(&quot;Please enter your name: &quot;);  // Предложить ввести имя

  string userName = Console.ReadLine();

  Console.Write(&quot;Please enter your age: &quot;);   // Предложить ввести возраст

  string userAge = Console.ReadLine();

  <b>// Просто ради забавы изменить цвет переднего плана.</b>

  ConsoleColor prevColor = Console.ForegroundColor;

  Console.ForegroundColor = ConsoleColor.Yellow;

  <b>// Вывести полученную информацию на консоль.</b>

  Console.WriteLine(&quot;Hello {0}! You are {1} years old.&quot;,

  userName, userAge);

  <b>// Восстановить предыдущий цвет переднего плана.</b>

  Console.ForegroundColor = prevColor;

}

После запуска приложения входные данные будут совершенно предсказуемо выводиться в окно консоли (с использованием указанного специального цвета).

Форматирование консольного вывода

В ходе изучения нескольких начальных глав вы могли заметить, что внутри различных строковых литералов часто встречались такие конструкции, как {0} и {1}. Платформа .NET 5 поддерживает стиль форматирования строк, который немного напоминает стиль, применяемый в операторе printf() языка С. Попросту говоря, когда вы определяете строковый литерал, содержащий сегменты данных, значения которых остаются неизвестными до этапа выполнения, то имеете возможность указывать заполнитель, используя синтаксис с фигурными скобками. Во время выполнения все заполнители замещаются значениями, передаваемыми методу Console.WriteLine().

Первый параметр метода WriteLine() представляет строковый литерал, который содержит заполнители, определяемые с помощью {0}, {1}, {2} и т.д. Запомните, что порядковые числа заполнителей в фигурных скобках всегда начинаются с 0. Остальные параметры WriteLine() — это просто значения, подлежащие вставке вместо соответствующих заполнителей.

На заметку! Если уникально нумерованных заполнителей больше, чем заполняющих аргументов, тогда во время выполнения будет сгенерировано исключение, связанное с форматом. Однако если количество заполняющих аргументов превышает число заполнителей, то лишние аргументы просто игнорируются.

Отдельный заполнитель допускается повторять внутри заданной строки. Например, если вы битломан и хотите построить строку &quot;9, Number 9, Number 9&quot;, тогда могли бы написать такой код:

// Джон говорит...

Console.WriteLine(&quot;{0}, Number {0}, Number {0}&quot;, 9);

(window.adrunTag = window.adrunTag || []).push({v: 1, el: 'adrun-4-390', c: 4, b: 390})

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

// Выводит: 20, 10, 30

Console.WriteLine(&quot;{1}, {0}, {2}&quot;, 10, 20, 30);

Строки можно также форматировать с использованием интерполяции строк, которая рассматривается позже в главе.

Форматирование числовых данных

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

Символы форматирования добавляются к заполнителям в виде суффиксов после двоеточия (например, {0:С}, {1:d}, {2:X}). В целях иллюстрации измените метод Main() для вызова нового вспомогательного метода по имени FormatNumericalData(), реализация которого в классе Program форматирует фиксированное числовое значение несколькими способами.

// Демонстрация применения некоторых дескрипторов формата,

static void FormatNumericalData()

{

  Console.WriteLine(&quot;The value 99999 in various formats:&quot;);

  Console.WriteLine(&quot;c format: {0:c}&quot;, 99999);

  Console.WriteLine(&quot;d9 format: {0:d9}&quot;, 99999);

  Console.WriteLine(&quot;f3 format: {0:f3}&quot;, 99999);

  Console.WriteLine(&quot;n format: {0:n}&quot;, 99999);

  // Обратите внимание, что использование для символа

  // шестнадцатеричного формата верхнего или нижнего регистра

  // определяет регистр отображаемых символов.

  Console.WriteLine(&quot;E format: {0:E}&quot;, 99999);

  Console.WriteLine(&quot;e format: {0:e}&quot;, 99999);

  Console.WriteLine(&quot;X format: {0:X}&quot;, 99999);

  Console.WriteLine(&quot;x format: {0:x}&quot;, 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

1 ... 48 49 50 51 52 53 54 55 56 ... 642
На этой странице вы можете бесплатно читать книгу Язык программирования C#9 и платформа .NET5 - Троелсен Эндрю бесплатно.
Похожие на Язык программирования C#9 и платформа .NET5 - Троелсен Эндрю книги

Оставить комментарий