C# 如何从DateTime中删除该值?

C# 如何从DateTime中删除该值?,c#,datetime,nullable,value-type,C#,Datetime,Nullable,Value Type,我现在有约会时间吗?对象中包含日期时间。我想从中删除日期时间值,因此当您询问“HasValue”时,它返回false?将其设置为null。是不可变的,因此您必须将变量重新分配给不同的值才能更改/删除基础值。这是有意义的,因为它是一种值类型(尽管是一种特殊类型);值类型在框架中通常是不可变的。您将注意到,null的Value或HasValue属性都没有设置器 DateTime? nullableDt = DateTime.Now; Console.WriteLine(nullableDt.Has

我现在有约会时间吗?对象中包含日期时间。我想从中删除日期时间值,因此当您询问“HasValue”时,它返回false?

将其设置为null。

是不可变的,因此您必须将变量重新分配给不同的值才能更改/删除基础值。这是有意义的,因为它是一种值类型(尽管是一种特殊类型);值类型在框架中通常是不可变的。您将注意到,
null
Value
HasValue
属性都没有设置器

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

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

如果你有

DateTime? value = DateTime.Now;
然后打电话

value = null;

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

变量本身不能为null,尽管您可以设置minValue,但它等效于“1/1/0001 00:00:00”

DateTime dvar = DateTime.MinValue;

@David,在更改某人的措辞之前(或代替)发表评论?特别是在一个新的答案上。不要把维基的事情看得太远。如果你对某人的措辞有问题,请提出来,给他们一个机会来解决或解释。@Anthony我只是突出显示了代码块并点击了“代码”按钮。不确定那里发生了什么。没关系,可能是某种合并问题;我正在编辑它。无论如何,我没有冒犯你。“干杯!”大卫,啊。好。现在我们明白为什么世界的形状像香蕉了。
DateTime dvar = DateTime.MinValue;