如何从DateTime中删除值?

时间:2010-10-20 20:50:23

标签: c# datetime nullable value-type

我有一个现有的DateTime?其中包含日期时间的对象。我想从中删除日期时间值,所以当你问“HasValue”它会返回false?

5 个答案:

答案 0 :(得分:7)

Nullable<T>是不可变的,因此您必须将变量重新分配给不同的值才能更改/删除基础值。这是有道理的,因为它是一个值类型(尽管特殊那个);值类型在框架中通常不可变。您会注意到Value的{​​{1}}和HasValue属性都没有设置器。

Nullable<T>

DateTime? nullableDt = DateTime.Now; 
Console.WriteLine(nullableDt.HasValue); //true

nullableDt = null; 
Console.WriteLine(nullableDt.HasValue); //false

答案 1 :(得分:5)

将其设为null。

答案 2 :(得分:3)

如果你有

DateTime? value = DateTime.Now;

然后致电

value = null;

答案 3 :(得分:1)

为什么不把它设置回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

答案 4 :(得分:0)

变量本身不能为空,虽然你可以设置minValue,它相当于'1/1/0001 00:00:00'

DateTime dvar = DateTime.MinValue;