次のシナリオでswitch
値を含むenum
ステートメントを使用する方法を教えてください。
フライト予約システムの小さなプログラムを作っています。プログラムは、乗客に関する特定の詳細を入力するためのものです。このプログラムでは、ユーザーが次の3つの宛先以外の宛先を選択することも制限されています。目的地を選択すると、フライト番号が自動的に割り当てられるようになります。ユーザーは3つの目的地の1つを選択し、プログラムは乗客に適切なフライト番号を割り当てます。
フライト番号は次のように割り当てられます。
Destination Flight No.
London 201
Frankfurt 233
Berlin 241
それでは、宛先のenum
を作成するとします。ここで、switchステートメントをどのように使用できますか?これは宿題ではありません。探検のためだけにやっています。
あなたのシナリオは、列挙の適切な使用のようには聞こえません。また、値が決して変更されない限り、これはデータ駆動型である必要があります。
値が変更されない場合は、目的地がキーでフライト番号が値である場合、Key-Valueペアがより適切です。これにより、キーを使用して値を直接かつ効率的に特定できるため、switchステートメントが不要になります。
本当に列挙型を使用したい場合、C#のswitchステートメントは次のようになります。
int flightNumber;
Destination selection = // some value collected from user input;
switch( selection )
{
case Destination.London:
flightNumber = 201;
break;
// etc.
}
私はTim Medoraに同意します。その場合、enum
を使用することは適切なアイデアではありません。目的地とフライト番号をハードコードする必要があるためです。
私があなたに勧めるのは、可能な目的地を用意することですList<string>
および目的地とフライト番号の間のマッピング、例:Dictionnary<string,int>
データベースの内容に応じて、プログラムの開始時に動的に生成します。
これは典型的なハッシュテーブルですよね。