重複の可能性:
DateTime“ null” value
datetimeオブジェクトをnullに設定することは可能ですか?
DateTime
は 値型 であり、int
やdouble
と同様に、意味のあるnull
値はありません。
VB.NETでは、次のように記述できます。
Dim d As DateTime = Nothing
ただし、これはd
をdefaultDateTime
値に設定するだけです。 C#では、同等のコードは次のようになります。
DateTime d = default(DateTime);
...これはDateTime.MinValue
と同等です。
とはいえ、 Nullable<T>
型があり、これは任意の値型null
にT
値を提供するために使用されます。 C#でのNullable<DateTime>
の省略形はDateTime?
です。
DateTime? myDate = null;
疑問符はnull許容型を示します。ネイティブ値またはnullに設定できるもの。
DateTime
自体は値型です。 nullにすることはできません。
いいえ、DateTime
は値型ではありません。
あなたは見たいかもしれません Nullable<DateTime>
しかし(またはDateTime?略して)
いいえ-DateTimeはC#の構造体であり、構造体(値型)をnullにすることはできません。
ただし、Nullable<DateTime>.
は使用できます。
いいえ、その構造はクラスではありません。 null許容型にします。例: System.DateTime? myValue;または、System.DateTime.MinValueをセンチネルとして使用します。
は値型であるため、通常、DateTimeをnullにすることはできませんが、C#2で導入されたnull許容演算子を使用すると、これを実現できます。