web-dev-qa-db-ja.com

DateTimeをnullにすることはできますか?

重複の可能性:
DateTime“ null” value

datetimeオブジェクトをnullに設定することは可能ですか?

22
r.r

DateTime値型 であり、intdoubleと同様に、意味のあるnull値はありません。

VB.NETでは、次のように記述できます。

Dim d As DateTime = Nothing

ただし、これはddefaultDateTime値に設定するだけです。 C#では、同等のコードは次のようになります。

DateTime d = default(DateTime);

...これはDateTime.MinValueと同等です。

とはいえ、 Nullable<T> 型があり、これは任意の値型nullT値を提供するために使用されます。 C#でのNullable<DateTime>の省略形はDateTime?です。

45
Dan Tao
DateTime? myDate = null;

疑問符はnull許容型を示します。ネイティブ値またはnullに設定できるもの。

DateTime自体は値型です。 nullにすることはできません。

4
user151323

いいえ、DateTimeは値型ではありません。

あなたは見たいかもしれません Nullable<DateTime> しかし(またはDateTime?略して)

4
Arcturus

いいえ-DateTimeはC#の構造体であり、構造体(値型)をnullにすることはできません。

ただし、Nullable<DateTime>.は使用できます。

3
Ian P

いいえ、その構造はクラスではありません。 null許容型にします。例: System.DateTime? myValue;または、System.DateTime.MinValueをセンチネルとして使用します。

2
open-collar

は値型であるため、通常、DateTimeをnullにすることはできませんが、C#2で導入されたnull許容演算子を使用すると、これを実現できます。

2
David Conde