すべてのデータ型をNullをしない

2008.05.23

その他

C#のデータ型は基本てきに2タイプを分けて、リファレンス型とストラクチャー型ということです。
リファレンス型(例えint ,string)はNULLになることができるけれど、ストラクチャー型は簡単にNULL
になれないです。
たとえば、よく使っているDateTimeに対して,以下コードを書けば、ビルドエラーを出てくる。
DateTime dtDate = null;
それはDateTimeはストラクチャー型ですから、直接にNULLになれないです。
ただ、どうしてもストラクチャー型をNULLに設定したい場合、どうすればいいですか?

Nullable now = DateTime.Now;
Nullable now = null;

以上のコードようなストラクチャー型をNullable型に変換して、リファレンス型と同じ使い方で使えるようにします。

そうしたら、以下ような本来実行できないコードもいけるようになります。
if (now != null) {}

ただ、注意してください。リファレンス型をNullable型に変換することができません。
たとえば、Nullable test = “ddd”;をビルドしたら、必ずエラーを出てきます。