Язык программирования C#9 и платформа .NET5 - Троелсен Эндрю. Страница 52
static void GetUserData()
{
<b>// Получить информацию об имени и возрасте.</b>
Console.Write("Please enter your name: "); // Предложить ввести имя
string userName = Console.ReadLine();
Console.Write("Please enter your age: "); // Предложить ввести возраст
string userAge = Console.ReadLine();
<b>// Просто ради забавы изменить цвет переднего плана.</b>
ConsoleColor prevColor = Console.ForegroundColor;
Console.ForegroundColor = ConsoleColor.Yellow;
<b>// Вывести полученную информацию на консоль.</b>
Console.WriteLine("Hello {0}! You are {1} years old.",
userName, userAge);
<b>// Восстановить предыдущий цвет переднего плана.</b>
Console.ForegroundColor = prevColor;
}
После запуска приложения входные данные будут совершенно предсказуемо выводиться в окно консоли (с использованием указанного специального цвета).
Форматирование консольного вывода
В ходе изучения нескольких начальных глав вы могли заметить, что внутри различных строковых литералов часто встречались такие конструкции, как
{0}
{1}
printf()
Console.WriteLine()
Первый параметр метода
WriteLine()
{0}
{1}
{2}
0
WriteLine()
На заметку! Если уникально нумерованных заполнителей больше, чем заполняющих аргументов, тогда во время выполнения будет сгенерировано исключение, связанное с форматом. Однако если количество заполняющих аргументов превышает число заполнителей, то лишние аргументы просто игнорируются.
Отдельный заполнитель допускается повторять внутри заданной строки. Например, если вы битломан и хотите построить строку
"9, Number 9, Number 9"
// Джон говорит...
Console.WriteLine("{0}, Number {0}, Number {0}", 9);
Также вы должны знать о возможности помещения каждого заполнителя в любую позицию внутри строкового литерала. К тому же вовсе не обязательно, чтобы заполнители следовали в возрастающем порядке своих номеров, например:
// Выводит: 20, 10, 30
Console.WriteLine("{1}, {0}, {2}", 10, 20, 30);
Строки можно также форматировать с использованием интерполяции строк, которая рассматривается позже в главе.
Форматирование числовых данных
Если для числовых данных требуется более сложное форматирование, то каждый заполнитель может дополнительно содержать разнообразные символы форматирования, наиболее распространенные из которых описаны в табл. 3.3.
Символы форматирования добавляются к заполнителям в виде суффиксов после двоеточия (например,
{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