『究極のC#プログラミング』Chapter5 Nullable型
なぜnullを入れたいのか
構造体は参照型と値型が同じように扱えるメリットがある。例えば、とりあえずToString()をつければ文字列になる。
これと同じで、nullも参照型と値型が同じように扱えるメリットがある。つまり、値型にもデフォルト値であるnullを許容するということ。
null合体演算子
nullだった場合に補う値を簡潔に書ける
値型にも参照型にも使用できる
Console.WriteLine(Console.ReadLine() ?? "EOF"); // nullだった場合に"EOF"
is演算子とnullable型
三値論理型とbool?型
nullable型のパフォーマンス
メモリを多く使うのはもちろん、速度でも桁違いに遅くなる
本当に必要な時だけ使用すべき
その他
int?は値型である