J'ai un DateTime existant? objet qui a un datetime en elle. Je veux enlever la valeur datetime de lui alors quand vous demandez "HasValue" il renvoie false?comment puis-je supprimer la valeur d'un DateTime?
2
A
Répondre
6
Nullable<T>
est immuable, vous devrez donc réaffecter la variable à une valeur différente pour pouvoir modifier/supprimer la valeur sous-jacente. Cela a du sens puisque c'est un type de valeur (bien qu'un spécial un à cela); les types de valeur sont normalement immuable dans le cadre. Vous remarquerez que ni la propriété Value
ni la propriété HasValue
pour Nullable<T>
ne disposent d'un accesseur.
DateTime? nullableDt = DateTime.Now;
Console.WriteLine(nullableDt.HasValue); //true
nullableDt = null;
Console.WriteLine(nullableDt.HasValue); //false
ou
nullableDt = new DateTime?();
5
Définissez-le sur null.
3
Si vous avez
DateTime? value = DateTime.Now;
puis appelez
value = null;
1
Pourquoi ne pas simplement revenir à null?
DateTime? d = null;
System.Diagnostics.Debug.WriteLine("HasValue1 = {0}", d.HasValue); //False
d = DateTime.Now;
System.Diagnostics.Debug.WriteLine("HasValue2 = {0}", d.HasValue); //True
d = null;
System.Diagnostics.Debug.WriteLine("HasValue3 = {0}", d.HasValue); //False
0
La variable elle-même ne peut pas être nulle, si vous pouvez régler le minValue, il est équivalent à « 1/1/0001 0:00:00 »
DateTime dvar = DateTime.MinValue;
@ David, poster un commentaire avant (ou au lieu de) changer le libellé de quelqu'un? Particulièrement sur une nouvelle réponse. Ne prenez pas le truc du wiki trop loin. Si vous avez un problème avec le phrasé de quelqu'un, mentionnez-le, donnez-lui une chance de le corriger ou de l'expliquer. –
@Anthony Je viens de surligner le bloc de code et de cliquer sur le bouton "code". Je ne sais pas ce qui s'est passé là-bas. –
C'est bien, probablement une sorte de problème de fusion; J'étais en train de l'éditer. Aucune infraction prise de toute façon. À votre santé. – Ani