C#での3項演算子とnull条件演算子、クエスチョンマークの使い方について解説します。

C#ではクエスチョンマーク演算子がよく出てくるんですけど、意味がよく分からないんですよね。



C#のクエスチョンマーク演算子の使い方、覚えにくいですよね。3項演算子やnull条件演算子など一度確認してみましょう。
3項演算子のクエスチョンマークを使った記法
3項演算子は、3つの式から1つの式を生成するための演算子です。構文は以下のようにクエスチョンマークを使用します。
式1 ? 式2 : 式3
式1がtrueの場合、式2が評価されます。式1がfalseの場合、式3が評価されます。
例えば、2つの変数xとyを比較し、xがyより大きい場合に「xはyより大きい」という文字列を、それ以外の場合に「yはxより大きい」という文字列を生成するコードは以下のようになります。
int x = 10;
int y = 20;
string result = x > y ? "x is greater than y" : "y is greater than x";
Console.WriteLine(result);
このように、3項演算子を使用することで、条件分岐の構文を簡潔にすることができます。
null条件演算子とは?
null条件演算子は、オブジェクトがnullでないかどうかを判定するための演算子です。
nullに対して想定していない処理を行った場合、例外「NullReferenceException」が発生します。
null条件演算子を使用することで、null値に対して処理を行わずにエラーを回避することができます。
null条件演算子を使用するには、変数の後ろに「?」を付けます。以下のように記述します。
変数名?.プロパティ名または変数名?[インデックス]
例えば、オブジェクト変数がnullでない場合に、そのオブジェクトのプロパティを取得するコードは以下のようになります。
List<int> list = null;
int? result = list?[0];
Console.WriteLine(result);
このように、null条件演算子を使用することで、nullのチェックを簡潔にすることができます。また、nullの場合に例外を発生させずにnullを返すこともできます。
null合体演算子としての??(ダブルクエスチョンマーク)
null合体演算子は、2つのオペランドのいずれかがnullでない場合に、そのオペランドの値を返す演算子です。
??(ダブルクエスチョンマーク)を使用することで、nullの判定を行うことができます。
変数名1 ?? 変数名2
例えば、変数xがnullでない場合にxを、それ以外の場合にyを返すコードは以下のようになります。
int? x = null;
int y = 10;
int result = x ?? y;
Console.WriteLine(result);
このように、クエスチョンマークを使用することで、nullのチェックと代替値の代入を簡潔にすることができます。
まとめ
C#での3項演算子とnull条件演算子、クエスチョンマークの使い方について解説しました。
- 3項演算子は、3つの式から1つの式を生成するための演算子です。
- 3項演算子は、if-else文を簡潔に書くために使用することができます。
- null条件演算子は、オブジェクトがnullでないかどうかを判定するための演算子です。
- クエスチョンマークは、「null合体演算子」の一種であり、nullのチェックと代替値の代入を簡潔にすることができます。



これらの演算子を使用することで、プログラムを簡潔に書くことができまそうです!
効率的なコーディングをするためにも覚えておいて損はないですね。



C#には、3項演算子やnull条件演算子、クエスチョンマークなど、多数の便利な演算子が用意されています。これらの演算子を使用することで、プログラムを効率的に書くことができます。是非、活用して効率的なコーディングを目指しましょう。