Ввод имени и фамилии пользователем

Как сделать так, чтобы пользователь должен был вводить и имя и фамилию, а в случае если что-то из этого не введено, то юзер получал бы сообщение об ошибке.

Пишу для консоли(ConsoleApp), сам не смог


Ответы (2 шт):

Автор решения: Dev18

Для проверки ввода имени и фамилии, можно использовать цикл, который проверяет, не является ли введённая строка пустой. Если строка пустая, выводится сообщение об ошибке, и программа продолжает запрашивать ввод, пока пользователь не введёт корректное значение. Это достаточно базовый, но наглядный пример для вас - валидации

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;
    }
}
→ Ссылка
Автор решения: rotabor

По запросу "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")}");
}
→ Ссылка