首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >可空日期异常处理-有更好的方法吗?

可空日期异常处理-有更好的方法吗?
EN

Stack Overflow用户
提问于 2012-09-20 07:17:03
回答 4查看 1.1K关注 0票数 0

在尝试处理无效或空日期输入时,我遇到了这个问题。

对于普通的DateTime变量,我可以这样做

代码语言:javascript
复制
DateTime d = new DateTime.Now; //You can also use DateTime.MinValue. You cannot assign null here, WHY? 
DateTime.TryParse(ctrlDate.Text, out d);

对于可空的DateTime

代码语言:javascript
复制
DateTime? nd = null;
DateTime.TryParse(ctrlDate.Text, out nd); //this doesn't work. it expects DateTime not DateTime?

For DateTime? System.DateTime.TryParse(string,out System.DateTime)的最佳重载方法匹配有一些无效的参数

所以我不得不把它改成

代码语言:javascript
复制
DateTime? nd = null;
DateTime d = DateTime.Now;
if(DateTime.TryParse(ctrlDate.Text, out d))
   nd = d;

为了实现可空日期,我必须创建一个额外的DateTime变量。

有更好的办法吗?

EN

Stack Overflow用户

回答已采纳

发布于 2012-09-20 07:35:19

您确实需要创建额外的DateTime变量,没有更好的方法了。

尽管您当然可以将其封装在自己的解析方法中:

代码语言:javascript
复制
bool MyDateTimeTryParse(string text, out DateTime? result)
{
    result = null;

    // We allow an empty string for null (could also use IsNullOrWhitespace)
    if (String.IsNullOrEmpty(text)) return true;

    DateTime d;
    if (!DateTime.TryParse(text, out d)) return false;
    result = d;
    return true;
}
票数 2
EN
查看全部 4 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12507716

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档