リストボックスで種の選択肢を反映させるために、コード内に複数のスイッチを使用しています。私は何とかこれは明確な解決策は、スイッチのこの複数回使用ではないことを感じてC#複数のスイッチを避ける方法(デリゲート?)
private int getLengthOfChromosome(int number) {
int species = listBox1.SelectedIndex;
switch (species) {
case 0:
//Console.WriteLine("arabidopsis");
return arabidopsis_chromosomes[number - 1];
case 1:
//Console.WriteLine("oryza");
return oryza_chromosomes[number - 1];
case 2:
//Console.WriteLine("glycine");
return glycine_chromosomes[number - 1];
default:
Console.WriteLine("Error");
throw new Exception("wrong speices choice");
}
:秒がどのように見える
private int getOrganelleLength() {
int species = listBox1.SelectedIndex;
switch (species) {
case 0:
//Console.WriteLine("arabidopsis");
return 154478;
case 1:
//Console.WriteLine("oryza");
return 134525;
case 2:
//Console.WriteLine("glycine");
return 152218;
default:
Console.WriteLine("Error");
throw new Exception("wrong speices choice");
}
}
:のようにそれらの一つが見えます。しかし、両方の関数は完全に異なる値を返す(もちろん、種の選択に基づいて)。方法があれば、私のコードを改善する方法を学ぶのが大好きです。どうもありがとう。
各種別ごとに異なるクラスを使用します。 –
ありがとう@devouredelysium、これは良いアイデアです。私は種に関するすべての情報を別々のクラスに入れます。しかし、私はまだ選択された種に基づいてデータを取得したいと思うでしょう。同じunknown_specieでコードを書いてから、それを実際のspecieで初期化することができればいいでしょう。 – Perlnika