我有一个现有的DateTime?其中包含日期时间的对象。我想从中删除日期时间值,所以当你问“HasValue”它会返回false?
答案 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;