C#のNull許容型(Nullable)について
null 許容型は、System.Nullable 構造体のインスタンスらしい。
C#では型に ? をつけるとNullを許容するようにできる。
int? i = null; // nullが入れられるint型
??演算子
??演算子を使うと、型がnullでなかった場合は左辺、nullだったら右辺になる。
int y = x ?? -1; // xがnullでないならx, nullなら-1
Null許容型がnullだった場合の初期値を設定するみたいな意味合いらしい。
Groovyのエルビス演算子*1みたいな感じですね。
HasValueプロパティとValueプロパティ
HasValueで値がnullでないかテストし、Valueで取得する。
if(x.HasValue) j = x.Value; // ↓もしくは == null でもよいみたい if(x == null) j = x.Value;