在尝试处理无效或空日期输入时,我遇到了 Nullable 日期的挑战
对于普通DateTime
变量,我可以这样做
DateTime d = new DateTime.Now; //You can also use DateTime.MinValue. You cannot assign null here, WHY?
DateTime.TryParse(ctrlDate.Text, out d);
对于可为空的日期时间
DateTime? nd = null;
DateTime.TryParse(ctrlDate.Text, out nd); //this doesn't work. it expects DateTime not DateTime?
对于日期时间?
System.DateTime.TryParse(string, out System.DateTime) 的最佳重载方法匹配有一些无效参数
所以我不得不把它改成
DateTime? nd = null;
DateTime d = DateTime.Now;
if(DateTime.TryParse(ctrlDate.Text, out d))
nd = d;
我必须为可空日期创建一个额外的DateTime
变量来实现这一点。
有没有更好的办法?