C# 创建菜单堆栈

C# 创建菜单堆栈,c#,menu,stack,C#,Menu,Stack,我正在尝试创建一个菜单系统,它允许您在将最终选定的数据返回给调用方法时进行前后切换 以orderFood()方法为例,该方法显示可以订购的食品类型的选择菜单。如果有人选择海鲜,则会运行seafiot()方法并查询可以订购的海鲜类型,然后显示它 如果用户选择fishsticks,fishsticks将返回到调用order food的方法。同样,此菜单系统将允许用户返回上一个菜单 我在想(使用C#),我必须使用反射和不安全代码(指针)来获得这种效果,但我确信有一种更简单的方法可以做到这一点。有什么建

我正在尝试创建一个菜单系统,它允许您在将最终选定的数据返回给调用方法时进行前后切换

以orderFood()方法为例,该方法显示可以订购的食品类型的选择菜单。如果有人选择海鲜,则会运行seafiot()方法并查询可以订购的海鲜类型,然后显示它

如果用户选择fishsticks,fishsticks将返回到调用order food的方法。同样,此菜单系统将允许用户返回上一个菜单

我在想(使用C#),我必须使用反射和不安全代码(指针)来获得这种效果,但我确信有一种更简单的方法可以做到这一点。有什么建议吗

谢谢,
Michael

如果在编译时知道不安全的代码,那么通过使其成为数据驱动的,您可以轻松地完成所描述的工作。不要把菜单看作是做这些事情的例程,而是把菜单看作是做这些事情的一类对象。嗯


即使您在编译时不知道所有内容(比如说您需要从文件中读取选项),您仍然可以根据文件的内容在运行时构建表示菜单的对象嵌套来完成这项工作。

如果您在编译时知道不安全的代码,您就可以轻松完成所描述的内容,通过数据驱动。不要把菜单看作是做这些事情的例程,而是把菜单看作是做这些事情的一类对象。嗯


即使您在编译时不知道所有内容(比如您需要从文件中读取选项),您仍然可以根据文件的内容在运行时构建表示菜单的对象嵌套来实现这一点。

不要将菜单视为堆栈,试着将它们视为树

如果这样做,那么在需要实现堆栈方法时,在树上“走动”应该相当容易

这将很容易从文件或数据库中读取(特别是从XML中读取非常容易),而且在上下走动也不会太困难


实际上,这里面没有任何东西需要不安全的代码或反射——所有这些都可以通过C#中的标准集合来完成。

与其将菜单看作一个堆栈,不如将它们看作一棵树

如果这样做,那么在需要实现堆栈方法时,在树上“走动”应该相当容易

这将很容易从文件或数据库中读取(特别是从XML中读取非常容易),而且在上下走动也不会太困难

这里面并没有任何东西需要不安全的代码或反射——所有这些都可以通过C#中的标准集合来完成