単体テストコードを書いていて、引数にDateTime型の年月日時刻情報を指定する関数があったので、そこにNothingを指定すると何が起きるのかを見てみました……。関数の中では、受け取ったDateTime型データをToStringで「〜.ToString("yyyyMMdd")」のように書式変換していたのですが、結果は以下の通りです。
- 受け取った時の引数値「#12:00:00 AM#」
- ToString("yyyyMMdd")の結果: "00010101"
- ToString("HHmmss")の結果: "000000"
へぇ…。ちなみに上記現象は.NET Framework 4.0。DateTimeは構造体なので、Nothingとの比較などはできない。ということは、Nothingを渡した時点で「できたてほやほやのカラッポ構造体」がわたったことになるのか?(←その辺ちょっとよく分かっていない)。