c# - 选择选项后返回 CLI 主菜单
问题描述
介绍 - 应用说明
我目前正在开发一个包含 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 │
│ │
│ │
└─────────────────────────────────────────────────────────────────────────┘
");
解决方案
为了为应用程序创建有效的机制,我们集成了函数和类。
可以以多种方式集成类和方法,以多种不同的方式解决问题。
新的类和功能
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(); }
推荐阅读
- windows - 如何通过注册表隐藏/禁用特定的应用程序桌面快捷方式?
- c# - asp.net core 中的配置键是否应该不区分大小写?
- javascript - 如何在 Objection.js 的关系映射中过滤 2 个不同值的相同字段
- blazor - Blazor WebAssembly - 页面刷新获取 JSInterop Json 错误
- react-native - 警告:expo-cli 尚未针对 Node.js v16.3.0 进行测试
- sql-server - 更新 SSAS 多维数据集中的缺失数据
- google-sheets - 哪个 VLOOKUP 公式更优化性能?包含多个不需要的列的范围,或仅包含搜索键和单列范围的数组
- google-sheets - ImportHTML (nasdaq.com) 给出:“错误:无法获取 URL。”
- ros - 用于 ROS 的 Universal Robot Driver 问题
- tfs - 从 Azure Dev Ops 执行增强的测试套件导出时加载 dataTFS.WebApi.Exception 时出错