Nullable Type補足
昨日のテストで1つ実験し忘れていました。Nullable Typeにnullが設定されている場合、Valueプロパティにアクセスするとどうなるのでしょうか?
using System; class Program { static void Main(string[] args) { int? a = null; try { Console.WriteLine("{0}", a.Value); } catch (InvalidOperationException e) { Console.WriteLine(e.Message); } if (!a.HasValue) { Console.WriteLine("値がありません。"); } } } /* 結果 Nullable object must have a value. 値がありません。*/
このように例外が発生します。なので、アクセスする前には値があるかHasValueプロパティで確認してからアクセスすることになります。昨日はnullと比較していましたが、こっちの方が良いですよね。