1

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

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

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

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

谢谢,迈克尔

4

2 回答 2

1

与其将菜单视为堆栈,不如尝试将它们视为一棵树。

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

这将相当容易从文件或数据库中读取(尤其是从 XML 中非常容易),而且上下走动也不应该太难。

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

于 2009-03-21T02:31:11.587 回答
0

只要您在编译时就知道,您可以轻松地做您所描述的事情,而无需不安全的代码,方法是使其成为数据驱动的。与其将菜单视为执行这些操作的例程,不如将菜单视为执行这些操作的一类对象。嗯。

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

于 2009-03-21T02:21:15.950 回答