??演算子を知らないともぐり
こんばんは、C#開発者の米村です。
これを知らないとC#のもぐりと言われるのが、??演算子です(実際そんな事ないです)
??演算子 とは
左側のオペランドがnull値でない場合にはこのオペランドを返し
null値である場合は右側のオペランドを返すというものです。
実際の具体例は
using System; namespace Test { static class Program { [STAThread] static void Main() { int? i = null; int hoge = i ?? 100; System.Diagnostics.Debug.WriteLine(hoge.ToString()); } } }
これは、iがnullだった場合hogeに100を格納するというものです。
null許容型は、値を指定するか未定義に出来ます。
??演算子を使用せずに、null非許容型にnull許容型を割り当てると
コンパイルエラーになってくれます。
実際に宣言時の構文の T? は、System.Nullable
double? foo = 5.12; int? bar = 100;
ちなみに入れ子になったnull許容型は許可されていないです。
// これはNG Nullable<Nullable<int>> nullableTest;
??演算子は以外に便利ですね。