C#において、三項演算子はコードを効率的かつ簡潔に書くための便利な手段です。
本記事では、三項演算子の基本的な使い方から、複数条件を指定する方法、
そしてNULLを代入する方法まで、初心者でも理解しやすいように解説していきます。
if文を省略した三項演算子の使い方
三項演算子は、条件に基づいて異なる値を返すためのコンパクトな記法です。
基本の構文は以下の通りです。
//conditionがtrueの場合はexpression1を代入
result = (condition) ? expression1 : expression2;
//conditionがfalseの場合はexpression2を代入
result = (!condition) ? expression1 : expression2;
この構文では、conditionがtrueであればexpression1が、そうでなければexpression2が結果として代入されます。
条件についてはIF文同様にtrue,falseの記述は省略できます。
三項演算子を複数条件を指定する方法
複数の三項演算子を連結して使用することで、より複雑な条件分岐を実現できます。
以下はその基本構文です。
result = condition1 ? expression1 : condition2 ? expression2 : expression3;
//例
result = 条件1 ? "条件1がtrue" : 条件2 ? "条件1がfalseかつ条件2がtrue": "条件1がfalseかつ条件2がfalse";
//条件がややこしくなる場合は以下のように括弧を利用して記述しましょう。
result = 条件1 ? "条件1がtrue" : (条件2 ? "条件1がfalseかつ条件2がtrue": "条件1がfalseかつ条件2がfalse");
この構文では、condition1がtrueならexpression1、そうでなければcondition2がtrueならexpression2、
どちらもfalseならexpression3がresultに代入されます。
三項演算子でNULL許容型を代入する
三項演算子を利用してNULLを代入する際は、代入する値の方をNULL許容型にする必要があります。
以下がその基本構文です。
variable = (condition) ? null: (int?)value;
この構文では、conditionがtrueであればnullがそうでなければ(int?)valueが変数に代入されます。
nullを利用した参考演算子の省略判定
C#の三項演算子は、条件式に基づいて2つの式のうちどちらを評価する必要がありelseは省略できません。
ただNULLを利用し三項演算子を省略することができます。
以下は、変数がNULLの場合に代入する例で値がNULLではない場合は何もしないで値を返します。
result = someVariable ?? defaultValue;
以下記事で複数条件指定について詳しく紹介しているよ
まとめ
C#の三項演算子は、条件分岐を簡潔に表現する手段として非常に便利です。
基本の使い方から複雑な条件まで、活用することでコードの可読性が向上します。
是非この記事を参考にして、三項演算子の使い方をマスターしてください。