Ввод имени и фамилии пользователем
Как сделать так, чтобы пользователь должен был вводить и имя и фамилию, а в случае если что-то из этого не введено, то юзер получал бы сообщение об ошибке.
Пишу для консоли(ConsoleApp), сам не смог
Ответы (2 шт):
Для проверки ввода имени и фамилии, можно использовать цикл, который проверяет, не является ли введённая строка пустой. Если строка пустая, выводится сообщение об ошибке, и программа продолжает запрашивать ввод, пока пользователь не введёт корректное значение. Это достаточно базовый, но наглядный пример для вас - валидации
using System;
class Program
{
static void Main()
{
string firstName = GetNonEmptyInput("Enter your first name: ", "Error: First name cannot be empty.");
string lastName = GetNonEmptyInput("Enter your last name: ", "Error: Last name cannot be empty.");
Console.WriteLine($"Hello, {firstName} {lastName}!");
}
//DRY полезно почитать => https://ru.wikipedia.org/wiki/Don%E2%80%99t_repeat_yourself
static string GetNonEmptyInput(string prompt, string errorMessage)
{
string input = "";
while (string.IsNullOrWhiteSpace(input))
{
Console.Write(prompt);
input = Console.ReadLine();
if (string.IsNullOrWhiteSpace(input))
{
Console.WriteLine(errorMessage);
}
}
return input;
}
}
По запросу "I need simple c# app to user providing his name and surname and return error if any of these is absent" Copilot выдал готовый код:
using System;
class Program {
static void Main() {
Console.Write("Enter your name: ");
string name = Console.ReadLine();
Console.Write("Enter your surname: ");
string surname = Console.ReadLine();
if (string.IsNullOrWhiteSpace(name) || string.IsNullOrWhiteSpace(surname))
Console.WriteLine("Error: Both name and surname must be provided.");
else
Console.WriteLine($"Hello, {name} {surname}!");
}
}
Это я к тому, что можно было бы и самому запросить.
Обновление
На русском тоже работает "Мне нужно простейшее приложение на c#, которое запрашивает у пользователя имя и фамилию и возращает ошибку, если что-либо из этого отсутствует":
using System;
class Program
{
static void Main()
{
Console.Write("Введите имя: ");
string firstName = Console.ReadLine();
Console.Write("Введите фамилию: ");
string lastName = Console.ReadLine();
if (string.IsNullOrWhiteSpace(firstName) || string.IsNullOrWhiteSpace(lastName))
{
Console.WriteLine("Ошибка: Имя и фамилия обязательны для ввода.");
}
else
{
Console.WriteLine($"Здравствуйте, {firstName} {lastName}!");
}
}
}
Чтобы не только Copilot:
static void Main() {
string GetNonEmptyInput(string prompt) {
string input = "";
Console.Write($"Enter your {prompt} name: ");
while (string.IsNullOrWhiteSpace(input = Console.ReadLine()))
Console.Write($"Error: {prompt} name cannot be empty.\r\nTry again: ");
return input;
}
Console.WriteLine($"Hello, {GetNonEmptyInput("first")} {GetNonEmptyInput("last")}");
}