#c# #input #io #command-line-interface #user-input
#c# #ввод #io #интерфейс командной строки #пользовательский ввод
Вопрос:
Введение — Объяснение приложения
В настоящее время я разрабатываю консольное приложение, которое включает меню CLI.
Приложение позволяет пользователю получить доступ к различным другим меню, введя номер.
Проблема — возврат в главное меню CLI
Если пользователь находится в другом меню, я хочу, чтобы пользователь вернулся в главное меню, введя номер 5.
Но я не знаю, как это сделать программно.
Исходный код
Console.WriteLine(@"
┌─────────────────────────────────────────────────────────────────────────┐
│ │
│ Test │
│ │
│ │
│ │
│ │
│ 1 - Test │
│ 2 - Test │
│ 3 - Test │
│ 4 - Test │
│ │
│ │
│ │
│ │
└─────────────────────────────────────────────────────────────────────────┘
");
int _select = Convert.ToInt32(Console.ReadLine());
if (_select == 1)
{
Console.Clear();
Console.WriteLine(@"
┌─────────────────────────────────────────────────────────────────────────┐
│ │
│ Test │
│ │
│ │
│ │
│ │
│ 1 - Test │
│ 2 - Test │
│ 3 - Test │
│ 4 - Test │
│ │
│ 5 - Exit │
│ │
│ │
└─────────────────────────────────────────────────────────────────────────┘
");
Комментарии:
1. Разумным способом может быть метод, который печатает меню и ожидает ввода, а затем возвращает выбранный параметр. Затем вы можете вызывать этот метод всякий раз, когда вам нужно отобразить меню. Кроме того, вам, вероятно, понадобится цикл вокруг основной части вашей программы, чтобы она никогда не завершалась, пока пользователь не выберет соответствующую опцию. Я был бы удивлен, если бы вы не смогли найти в Интернете примеры консольной программы на основе меню, из которой вы могли бы почерпнуть идеи. Какие исследования вы провели?
Ответ №1:
Чтобы создать эффективный механизм для приложения, мы интегрируем функции и классы.
Классы и методы могут быть интегрированы многими способами, чтобы решить проблему многими различными способами.
- Новый класс и функции
public class Menu { private static int _select; public static void RootMenu() { Console.WriteLine(@" ┌─────────────────────────────────────────────────────────────────────────┐ │ │ │ Application name │ │ │ │ Description of the application │ │ │ │ │ │ 1 - Menu │ │ 1 - Menu │ │ 2 - Menu │ │ 3 - Menu │ │ │ │ 5 - Exit │ │ │ └─────────────────────────────────────────────────────────────────────────┘ ");
- Пользовательский ввод, определяющий, какое меню отображать
_select = Convert.ToInt32(Console.ReadLine()); if (_select == 1) { Console.Clear(); Console.WriteLine(@" ┌─────────────────────────────────────────────────────────────────────────┐ │ │ │ 1 - Menu │ │ │ │ │ │ │ │ │ │ │ │ 1 - Option │ │ │ │ 2 - Option │ │ │ │ │ │ │ │ 5 - Exit │ │ │ └─────────────────────────────────────────────────────────────────────────┘ ");
- Пользовательский ввод, который выполняет функцию
_select = Convert.ToInt32(Console.ReadLine()); if (_select == 5) { ReturnRootMenu(); } }
- Функция, которая отображает главное меню при выполнении функции в классах или методах
public static void ReturnRootMenu() { Console.Clear(); RootMenu(); }
Комментарии:
1. Большое вам спасибо. Вы ответили очень профессионально. У меня есть последний вопрос. Есть ли у вас точное определение того, что такое классы?
2. Классы — это сложные типы данных. Классы сложны, потому что они могут хранить больше данных, чем примитивные типы данных.
3. Большое вам спасибо! 🙂