Un DateTime peut-il être null? [dupliquer]

Double Possible:
DateTime valeur "null

Est-il possible de définir l'objet datetime sur null?

22
demandé sur Community 2010-09-03 16:26:07

6 réponses

DateTime est un valeur de type, qui, tout comme int et double, n'a pas de sens null valeur.

Dans VB.NET, vous pouvez écrire ceci:

Dim d As DateTime = Nothing

Mais tout cela fait est de définir d à la valeur par défaut DateTime Valeur. En C# le code équivalent serait le suivant:

DateTime d = default(DateTime);

...ce qui équivaut à DateTime.MinValue.

Cela dit, il y a le Nullable<T> type, qui est utilisé pour fournir une valeur null pour tout type de valeur T. Le raccourci pour Nullable<DateTime> en C# est DateTime?.

43
répondu Dan Tao 2010-09-03 12:27:46
DateTime? myDate = null;

Le point d'interrogation vous donnera un type nullable. Celui qui peut être défini sur sa valeur native ou sur null.

DateTime lui-même est un type valeur. Il ne peut pas être null.

4
répondu 2010-09-03 12:27:01

Non, vous ne pouvez pas pour DateTime est un type valeur.

Vous voudrez peut-être consulter Nullable<DateTime> bien que (ou DateTime? en bref)

4
répondu Arcturus 2010-09-03 12:33:50

Non, c'est une structure pas une classe. Soit en faire un type nullable, par exemple System.DateTime? myValue; ou utilisez le système.DateTime.MinValue comme sentinelle.

2
répondu open-collar 2010-09-03 12:27:26

Non -- DateTime est une structure en C# et les structures (types de valeur) ne peuvent pas être null.

Vous pouvez, cependant, utiliser Nullable<DateTime>.

2
répondu Ian P 2010-09-03 12:28:18

Normalement DateTime ne peut pas être null, car est un Type de valeur, mais en utilisant l'opérateur nullable introduit en C# 2, vous pouvez accomplir ceci

2
répondu David Conde 2010-09-03 12:28:18