创建菜单堆栈

时间:2009-03-21 02:15:22

标签: c# menu stack

我正在尝试创建一个菜单系统,允许您在将最终选定的数据返回到调用方法时前后移动。

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

如果用户选择鱼竿,鱼竿将返回到称为订单食物的方法。同样,此菜单系统将允许用户返回上一个菜单。

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

谢谢, 迈克尔

2 个答案:

答案 0 :(得分:1)

不要将菜单视为堆栈,而是尝试将它们视为树。

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

这很容易从文件或数据库中读取(特别是非常容易从XML中读取),也不应该太难以上下走动。

这里没有任何东西需要不安全的代码或反射 - 它可以用C#中的标准集合完成。

答案 1 :(得分:0)

如果您在编译时知道,通过使数据驱动,您可以轻松地执行您所描述的内容而不会出现不安全的代码。不要将菜单视为执行这些操作的例程,而应将菜单视为执行这些操作的一类对象。 Ommm。

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