私が2つのメンバーの列挙型を持っていることはかなり頻繁に起こります:
enum E{
A,
B
}
列挙値に従って i に異なる値を割り当てたいとしましょう。
これを書くべきですか:
int i= (e== E.A)?0:1;
またはこれ:
int i;
if (e==E.A)
i=0;
else if (e==E.B)
i=1;
else throw new NotImplementedException("Unknown enum member for E : " + e);
または多分これ:
int i;
switch (e)
{
case E.A:
i = 0;
break;
case E.B:
i=1;
break;
default:
throw new NotImplementedException("Unknown enum member for E : " + e);
}
書くのがずっと速いので、私は通常最初のオプションを選びますが、私はいつもそれについて少し間違っていると感じています. 普段何をしていますか?
コードは c# で投稿しましたが、この質問は言語に関連したものではありません。
どのようにタグ付けすればよいかよくわかりません。必要に応じてタグを付け直してください。
編集:多分私の質問は十分に明確ではありません:私が本当に疑問に思っているのは:私の列挙型が決して変更されず、速い方法で進むと仮定すべきか、それとも変更される可能性があると考えるべきか(私は変更していませんが)まだ)、エラー処理コードを追加して、バグが変更された場合にその場所を追跡するのに何週間も費やさないようにします)