小ネタ。
三項演算子(条件演算子?)は可視性がいまいちだとかで嫌われてる気がするけど
うまく使えば簡単なswitch文の代わりにだってなるし、むしろ見やすいと思うよ!
という話。
まず、一般的によく使われるのは、↓こんなif文の代替にするケースか。
//int num; string text; if (num == 1) { text = "いち"; } else { text = "いちじゃない"; }
これを以下のように三項演算子に置き換えるとすっきり書ける。
ここまではまあ特に文句もないでしょう。
//int num; var text = num == 1 ? "いち" : "いちじゃない";
そして問題は、1か1じゃないかだけでなくて、
1か、2か、3か、それ以外かで分岐したいような場合。
if - else if - else if...ってやってくのもあれだから、
switch文にしましょうってなことをやったりすると思う。
もちろん、いったんDictionary的なので対応付けを作って~とかでもいいのだけど。
//int num; string text; switch (num) { case 1: text = "いち"; break; case 2: text = "に"; break; case 3: text = "さん"; break; default: text = "その他"; break; }
こういうときに、三項演算子を使うと意外とすっきり書けてしまうのですよ。
ほれ。
//int num; var text = num == 1 ? "いち" : num == 2 ? "に" : num == 3 ? "さん" : "その他";
なんとなく三項演算子って横着な人がだらだら横に長く書くイメージがあるけど
実は縦に並べると見やすくなるのよな。
C#にかぎらず、いろんな言語で使える方法だし、
とうの昔から使っている人は使っているんだろうとは思いますが。