転職を繰り返したサラリーマンの多趣味ブログ

30才未経験でSEに転職した人の多趣味ブログ

C#を勉強する⑦_条件演算子、null合体演算子、null条件演算子

条件演算子

if文で書くと4行になるところが、条件演算子を使うと1行で書ける。たしかに便利だが、慣れないと普通にif文使ってしまいそう。

// ?より前が条件式
// trueなら1、falseなら0を返却
var num = list.Contains(key) ? 1 : 0;

null合体演算子

// GetMessageの戻り値がnullの場合、message変数にはDefaultMessageの戻り値をセットする
// GetMessageがnull以外を返したら、message変数にそのままセットする
var message = GetMessage(code) ?? DefaultMessage();

こちらもif文で書くと複数行になるところが、null合体演算子を使えば1行でまとめられる。

null条件演算子

// sale変数がnull以外なら、Productプロパティを返す
// sale変数がnullなら、そのままnullを返す
return sale?.Product;

これは条件演算子を使っても書ける。

return sale == null ? null : sale.Product;

null条件演算子は配列に対しても書けるが、その場合はドットが不要。

// customersがnull以外なら、配列の0番目の要素を返す
return customers?[0];

これらを使えこなせば、if文に頼らず簡潔なコードが書けそう!けど、常に意識しないと絶対if文を使っちゃいそうではある。。