例えば、DBから値を取ってきて変数に代入する時、DB側でint型だけどNULL許容などの場合、直接値を代入できない。
変数に代入する前にNULLチェックをしないといけない。(NULLだったら0を設定など)
それで済むならいいが、システムとして0とNULLで意味が違うとかなると面倒なことになる。
そこで使えるのがNULL許容型。
これは定義した型に加え、NULLも許容するというもの。
参照型はNULL指定可能なので、値型に対して使用する。
1 |
int? a = null; |
とすることでint型とNULLを指定できるようになる。
int?型をintに代入する場合はキャストが必要。
1 2 3 |
int? a = 1; int b = (int)a; //キャストが必要。int b = a;だとエラー。 Console.WriteLine(b); //1 |