1

最終的に選択したデータを呼び出し元のメソッドに返しながら、前後に移動できるメニュー システムを作成しようとしています。

たとえば、 orderFood() メソッドは、注文できる食品の種類の選択肢のメニューを表示します。誰かがシーフードを選択すると、シーフード() メソッドが実行され、注文できるシーフードの種類を照会して表示します。

ユーザーがフィッシュスティックを選択すると、オーダーフードを呼び出したメソッドにフィッシュスティックが返されます。同様に、このメニュー システムでは、ユーザーは前のメニューに戻ることができます。

私は(C#を使用して)この種の効果を得るにはリフレクションと安全でないコード(ポインター)を使用する必要があると考えていますが、これを行うためのより簡単な方法があると確信しています。助言がありますか?

ありがとう、マイケル

4

2 に答える 2

1

メニューをスタックとして考えるのではなく、ツリーのように考えてみてください。

これを行うと、スタック アプローチを実装する必要があるため、ツリーを上下に「移動」するのはかなり簡単になるはずです。

これは、ファイルまたはデータベースから読み取るのがかなり簡単で (特に XML からは非常に簡単です)、また、行き来するのもそれほど難しいことではありません。

安全でないコードやリフレクションを必要とするものは、実際には何もありません。すべて C# の標準コレクションで実行できます。

于 2009-03-21T02:31:11.587 に答える
0

データ駆動型にすることで、コンパイル時に知っていれば、安全でないコードを使用せずに、説明していることを簡単に実行できます。メニューをこれらのことを行うルーチンと考えるのではなく、メニューをこれらのことを行うオブジェクトのクラスと考えてください。うーん。

コンパイル時にすべてを把握していなくても (たとえば、ファイルからオプションを読み取る必要がある場合など)、ファイルの内容に基づいて、実行時にメニューを表すオブジェクトのネストを構築することで、それを行うことができます。

于 2009-03-21T02:21:15.950 に答える