【C#】null合体演算子
nullチェックをする際に、三項演算子を使用することがあるかと思うが、null合体演算子を使用することで、以下のように簡潔に記述することができる。
1 2 3 4 5 6 7 8 9 10 |
//左辺がnullの場合、右辺を返す string str = null; //三項演算子で書いた場合 Console.WriteLine(str == null ? "nullです。" : str); //nullです。 //null合体演算子で書いた場合 Console.WriteLine(str ?? "nullです。"); //nullです。 //左辺がnullでない場合は、その値を返す str = "a"; Console.WriteLine(str ?? "nullです。"); //a |
右辺にとれるのは値のみ。
処理は記述できない。
また左右の型は同じ型でないといけない。
以下のような記述は不可。
1 |
var tmp = "a" ?? 1; //stringとintなので× |