モルモルしている

最近はテスト業務ばっかりで書くことがない

三項演算子使って無駄なif文を削減する

画面上にいくつかのコントロールを配置して、そのコントロールごとに入力されていたら値を取得する、ということをしていました。

if (ComboBox1.SelectedIndex != -1)
{
     var a = ComboBox.SelectedValue;
}

↑的な構文がコントロールの数だけあって無駄にメソッドが長くなってうっとうしい。
以前よくわからないなりに調べながらLINQを使っていた時に「?」と「:」でなんかいい感じに条件分岐ができた気がして、あれは確かラムダとかいうものだ、とぐぐりにぐぐって「ラムダ式 三項演算子」という言葉にたどり着く。*1
第1回 ラムダ式 − @IT

そして大量のif文を↓こうじゃ

var a = (ComboBox1.SelectedIndex == -1) ? null : ComboBox.SelectedValue;

なにこれ超スッキリ。
分岐するためだけに無駄に三行(if文と{})が付随してたのに、一行で解決。
メソッドの行数がっつり削減。これは気持ちいい。
忘れないように(忘れても掘り返せるように)メモメモ。

*1:たどり着いたんだけど、後からよくよく調べたら私の利用しているのは三項演算子だけでラムダ式は関係ないのでした。恥。