10 основных методов пользовательского ввода на C#, объясненных примерами кода

В этой статье блога мы рассмотрим десять основных методов пользовательского ввода в C#. Мы предоставим примеры кода и объясним каждый метод в разговорной форме, чтобы новичкам было легче его понять. Независимо от того, создаете ли вы консольное приложение или работаете над более крупным программным проектом, понимание этих методов пользовательского ввода имеет решающее значение. Итак, приступим!

  1. Console.ReadLine() — классический метод ввода
    Метод Console.ReadLine() позволяет пользователям вводить текст в консольном приложении. Он считывает строку символов, введенную пользователем, до тех пор, пока он не нажмет клавишу Enter. Вот пример:
Console.WriteLine("Please enter your name:");
string name = Console.ReadLine();
Console.WriteLine("Hello, " + name + "!");
  1. Преобразование пользовательского ввода в целое число
    Чтобы преобразовать пользовательский ввод в целое число, мы можем использовать метод Convert.ToInt32(). Он принимает строку в качестве входных данных и пытается преобразовать ее в 32-битное целое число со знаком. Вот пример:
Console.WriteLine("Please enter your age:");
string input = Console.ReadLine();
int age = Convert.ToInt32(input);
Console.WriteLine("You entered: " + age);
  1. Проверка пользовательского ввода с помощью int.TryParse()
    Метод int.TryParse() позволяет нам проверять ввод пользователя перед преобразованием его в целое число. Он возвращает логическое значение, указывающее, было ли преобразование успешным или нет. Вот пример:
Console.WriteLine("Please enter a number:");
string input = Console.ReadLine();
int number;
bool isValidNumber = int.TryParse(input, out number);
if (isValidNumber)
{
    Console.WriteLine("Valid number entered: " + number);
}
else
{
    Console.WriteLine("Invalid input. Please enter a valid number.");
}
  1. Чтение чисел с плавающей запятой с помощью double.Parse()
    Если вам нужно прочитать числа с плавающей запятой, введенные пользователем, вы можете использовать метод double.Parse(). Он принимает входную строку и пытается преобразовать ее в число двойной точности с плавающей запятой. Вот пример:
Console.WriteLine("Please enter a decimal number:");
string input = Console.ReadLine();
double number = double.Parse(input);
Console.WriteLine("You entered: " + number);
  1. Чтение логического ввода с помощью bool.Parse()
    Чтобы прочитать логический ввод от пользователя, мы можем использовать метод bool.Parse(). Он преобразует строковый ввод в логическое значение (истина или ложь). Вот пример:
Console.WriteLine("Are you a student? (true/false):");
string input = Console.ReadLine();
bool isStudent = bool.Parse(input);
Console.WriteLine("Student status: " + isStudent);
  1. Чтение одного символа с помощью Console.ReadKey()
    Если вам нужно прочитать один символ от пользователя, не дожидаясь нажатия клавиши Enter, вы можете использовать метод Console.ReadKey(). Он возвращает объект ConsoleKeyInfo, содержащий информацию о нажатой клавише. Вот пример:
Console.WriteLine("Press any key to continue:");
ConsoleKeyInfo keyInfo = Console.ReadKey();
Console.WriteLine("You pressed: " + keyInfo.KeyChar);
  1. Безопасное чтение паролей с помощью Console.ReadKey() и ConsoleKey
    Чтобы безопасно читать пароли, не отображая их на экране, мы можем использовать Console.ReadKey() и ConsoleKey. Вот пример:
Console.WriteLine("Enter your password:");
string password = "";
ConsoleKeyInfo keyInfo;
do
{
    keyInfo = Console.ReadKey(true);
    if (keyInfo.Key != ConsoleKey.Enter)
    {
        password += keyInfo.KeyChar;
    }
} while (keyInfo.Key != ConsoleKey.Enter);
Console.WriteLine("\nPassword entered: " + password);
  1. Чтение нескольких входных данных с помощью разделения и массивов строк
    Если вы хотите, чтобы пользователи вводили несколько входных данных в одной строке, вы можете разделить входную строку на массив строк с помощью метода Split(). Вот пример:
Console.WriteLine("Enter three numbers (separated by spaces):");
string input = Console.ReadLine();
string[] numbers = input.Split(' ');
int[] parsedNumbers = Array.ConvertAll(numbers, int.Parse);
Console.WriteLine("Numbers entered: " + string.Join(", ", parsedNumbers));
  1. Чтение входных данных из аргументов командной строки
    В C# мы также можем читать входные данные из аргументов командной строки. Аргументы командной строки передаются программе, когда она выполняется из командной строки или сценария. Вот пример:
static void Main(string[] args)
{
    if (args.Length > 0)
    {
        Console.WriteLine("Command-line arguments:");
        foreach (string arg in args)
        {
            Console.WriteLine(arg);
        }
    }
    else
    {
        Console.WriteLine("No command-line arguments provided.");
    }
}
  1. Использование внешних библиотек для расширенной обработки пользовательского ввода Когда дело доходит до обработки пользовательского ввода в C#, вы можете использовать несколько методов. Метод «Console.ReadLine()» — это классический способ чтения пользовательского ввода в консольном приложении. Он позволяет пользователям вводить текст и читает строку символов, пока они не нажмут клавишу Enter.

Если вам нужно преобразовать ввод пользователя в целое число, вы можете использовать метод «Convert.ToInt32()». Этот метод принимает строку в качестве входных данных и пытается преобразовать ее в 32-битное целое число со знаком. Например:

Console.WriteLine("Please enter your age:");
string input = Console.ReadLine();
int age = Convert.ToInt32(input);
Console.WriteLine("You entered: " + age);

Чтобы проверить вводимые пользователем данные перед преобразованием их в целое число, вы можете использовать метод «int.TryParse()». Он возвращает логическое значение, указывающее, было ли преобразование успешным или нет. Вот пример:

Console.WriteLine("Please enter a number:");
string input = Console.ReadLine();
int number;
bool isValidNumber = int.TryParse(input, out number);
if (isValidNumber)
{
    Console.WriteLine("Valid number entered: " + number);
}
else
{
    Console.WriteLine("Invalid input. Please enter a valid number.");
}

Если вам нужно прочитать числа с плавающей запятой, вы можете использовать метод double.Parse(). Он пытается преобразовать входную строку в число двойной точности с плавающей запятой. Например:

Console.WriteLine("Please enter a decimal number:");
string input = Console.ReadLine();
double number = double.Parse(input);
Console.WriteLine("You entered: " + number);

Для логического ввода вы можете использовать метод bool.Parse(). Он преобразует строковый ввод в логическое значение (истина или ложь). Вот пример:

Console.WriteLine("Are you a student? (true/false):");
string input = Console.ReadLine();
bool isStudent = bool.Parse(input);
Console.WriteLine("Student status: " + isStudent);

Чтобы прочитать один символ, не дожидаясь нажатия клавиши Enter, вы можете использовать метод «Console.ReadKey()». Возвращает информацию о нажатой клавише. Например:

Console.WriteLine("Press any key to continue:");
ConsoleKeyInfo keyInfo = Console.ReadKey();
Console.WriteLine("You pressed: " + keyInfo.KeyChar);

Если вы хотите безопасно читать пароли, вы можете использовать «Console.ReadKey()» вместе с «ConsoleKey». Это позволяет читать символы, не отображая их на экране. Вот пример:

Console.WriteLine("Enter your password:");
string password = "";
ConsoleKeyInfo keyInfo;
do
{
    keyInfo = Console.ReadKey(true);
    if (keyInfo.Key != ConsoleKey.Enter)
    {
        password += keyInfo.KeyChar;
    }
} while (keyInfo.Key != ConsoleKey.Enter);
Console.WriteLine("\nPassword entered: " + password);

Еще один полезный метод — разбить входную строку на массив строк. Это можно сделать с помощью метода Split(). Например:

Console.WriteLine("Enter three numbers (separated by spaces):");
string input = Console.ReadLine();
string[] numbers = input.Split(' ');
int[] parsedNumbers = Array.ConvertAll(numbers, int.Parse);
Console.WriteLine("Numbers entered: " + string.Join(", ", parsedNumbers));

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

static void Main(string[] args)
{
    if (args.Length > 0)
    {
        Console.WriteLine("Command-line arguments:");
        foreach (string arg in args)
        {
            Console.WriteLine(arg);
        }
    }
    else
    {
        Console.WriteLine("No command-line arguments provided.");
    }
}

В заключение отметим, что это лишь некоторые из многих методов, доступных для обработки пользовательского ввода в C#. Используя эти методы, вы можете создавать более интерактивные и удобные для пользователя приложения.