(.Net)三項演算子
C言語やって時から三項演算子自体は知ってましたが、当時可読性が悪くなると言われてたんでほとんど使ってませんでした。


しかし、三項演算子使ったほうがシンプルに読みやすい場合もあることを再発見しました。
例えば普通に if 文で書くとこうなります。

//usr は User クラスのインスタンス
 
List<String> listUserName = new List<String>();
List<String> listCompanyName = new List<String>();
...
 
if (String.IsNullOrEmpty(usr.UserName))
{
listUserName.Add(string.Empty);
}else{
listUserName.Add(usr.UserName);
}
 
if (String.IsNullOrEmpty(usr.CompanyName))
{
listCompanyName.Add(string.Empty);
}else{
listCompanyName.Add(usr.CompanyName);
}
...


これを三項演算子を使うと↓のようになります。

//usr は User クラスのインスタンス
 
List<String> listUserName = new List<String>();
List<String> listCompanyName = new List<String>();
...
 
listUserName.Add(String.IsNullOrEmpty(usr.UserName) ? string.Empty : usr.UserName);
listCompanyName.Add(String.IsNullOrEmpty(usr.CompanyName) ? string.Empty : usr.CompanyName);
...


if文の定型処理の繰り返しだとかなり長くなってしまいますが、三項演算子を使うと1行もしくは2行で済むためシンプルにまとまりますね。

追記:(2010/3/10)
PG仲間からの情報ですが、
string str = a ?? b
ってするとaがnullじゃないときにaがstrに入ってnllだったらbが入るようです。
知らなかったんですが、結構使えるかもしれませんね。
[PR]
by jehoshaphat | 2010-02-03 01:11 | .Net開発 | Trackback | Comments(0)
トラックバックURL : http://jehupc.exblog.jp/tb/12080792
トラックバックする(会員専用) [ヘルプ]
※このブログはトラックバック承認制を適用しています。 ブログの持ち主が承認するまでトラックバックは表示されません。


<< Sun Ray Server ... (OpenOffice Wri... >>