int? という表記をご存じでしょうか?
これによって、int? i = null; のように値型で null の代入を許容できるようになります。
例えば、int 型の変数に何らかの値を取得して失敗した時に null を返すという場合に便利です。
private void HogeHoge() {
int? hoge = this.GetHoge();
if (hoge == null) return;
}
private int? GetHoge() {
・・・・
}
一方、null を含むかもしれない型を null が代入できない型に代入する場合は以下のような書き方ができます。
int? hoge = this.GetHogeHoge();
int i = hoge ?? 0;
これで hoge の値を i に代入できます。この時 hoge の値が null なら 0 が代入されます。
地味に便利
ですね。
僕は、よく使っています。