C# 2.0 以降の新機能を一つづつ確認していきます。
以前に一度行ったのですが、公式ドキュメント再編でリンク切れしているところを見つけてしまったので。今ならもっと簡潔なサンプルが欠けるところもあるだろうし、せっかくなので今もう一度確認して行きます。
Null 許容型 (Nullable)
https://docs.microsoft.com/ja-jp/dotnet/csharp/programming-guide/nullable-types/
Null 許容型は、基になる値型の値だけでなく、null 値も表すことができる。型名の後ろに ? をつけて変数宣言する。Value プロパティ等で値型で値を取り出せるが、多くの場所で Null 許容型のままでも期待する結果になる。
int? a = 1; a = null; Console.WriteLine(a == null); // True a = 1; Console.WriteLine(a.Value); // 1 Console.WriteLine(a); // 1