J'ai beaucoup cherché mais je n'ai pas trouvé de solution. Comment gérez-vous un DateTime qui devrait être capable de contenir une valeur non initialisée (équivalent à null)? J'ai une classe qui peut avoir une valeur de propriété DateTime définie ou non. Je pensais initialiser le propriétaire de propriété à DateTime.MinValue, qui pourrait alors être facilement vérifié. Je suppose que c'est une question assez commune, comment faites-vous cela?
Réponses
Trop de publicités?Normal DateTimes, si vous n'avez pas les initialiser à tous, alors ils correspondent DateTime.MinValue
, parce que c'est un type de valeur plutôt que d'un type de référence.
Vous pouvez également utiliser un nullable DateTime, comme ceci:
DateTime? MyNullableDate;
Ou de la plus de la forme:
Nullable<DateTime> MyNullableDate;
Et, enfin, il y a un bâti en moyen de faire référence à la valeur par défaut de n'importe quel type. Cette méthode retourne null pour les types référence, mais pour notre DateTime exemple, il sera de retour le même que le type DateTime.MinValue:
default(DateTime)
Si vous utilisez .NET 2.0 (ou version ultérieure), vous pouvez utiliser le type nullable:
DateTime? dt = null;
ou
Nullable<DateTime> dt = null;
puis plus tard:
dt = new DateTime();
Et vous pouvez vérifier la valeur avec:
if (dt.HasValue)
{
// Do something with dt.Value
}
Ou vous pouvez l'utiliser comme:
DateTime dt2 = dt ?? DateTime.MinValue;
Vous pouvez lire plus ici:
http://msdn.microsoft.com/en-us/library/b3h38hb0.aspx
J'envisagerais d'utiliser un type nullable .
DateTime? myDate
au lieu de DateTime myDate
.