2010-10-20 27 views

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?(); 
+0

@ 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. –

+0

@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. –

+0

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

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;