Console.ReadLine;
static void GetUserData
{
}
На заметку! В Visual Studio и Visual Studio Code поддерживается несколько "фрагментов кода", которые после своей активизации вставляют код. Фрагмент кода cw
очень полезен в начальных главах книги, т.к. он автоматически разворачивается в вызов метода Console.WriteLine
. Чтобы удостовериться в этом, введите cw
где-нибудь в своем коде и нажмите клавишу <ТаЬ>. Имейте в виду, что в Visual Studio Code клавишу <Tab> необходимо нажать один раз, а в Visual Studio — два раза.
Теперь поместите после операторов верхнего уровня реализацию метода GetUserData
с логикой, которая приглашает пользователя ввести некоторые сведения и затем дублирует их в стандартный поток вывода. Скажем, мы могли бы запросить у пользователя его имя и возраст (который для простоты будет трактоваться как текстовое значение, а не привычное числовое):
static void GetUserData
{
// Получить информацию об имени и возрасте.
Console.Write("Please enter your name: "); // Предложить ввести имя
string userName = Console.ReadLine;
Console.Write("Please enter your age: "); // Предложить ввести возраст
string userAge = Console.ReadLine;
// Просто ради забавы изменить цвет переднего плана.
ConsoleColor prevColor = Console.ForegroundColor;
Console.ForegroundColor = ConsoleColor.Yellow;
// Вывести полученную информацию на консоль.
Console.WriteLine("Hello {0}! You are {1} years old.",
userName, userAge);
// Восстановить предыдущий цвет переднего плана.
Console.ForegroundColor = prevColor;
}
После запуска приложения входные данные будут совершенно предсказуемо выводиться в окно консоли (с использованием указанного специального цвета).
Форматирование консольного вывода
В ходе изучения нескольких начальных глав вы могли заметить, что внутри различных строковых литералов часто встречались такие конструкции, как {0}
и {1}
. Платформа .NET 5 поддерживает стиль форматирования строк, который немного напоминает стиль, применяемый в операторе 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.
Бьерн Страуструп , Бьёрн Страуструп , Валерий Федорович Альмухаметов , Ирина Сергеевна Козлова
Программирование, программы, базы данных / Базы данных / Программирование / Учебная и научная литература / Образование и наука / Книги по IT