首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >三元条件与可空类型

三元条件与可空类型
EN

Stack Overflow用户
提问于 2011-07-28 13:59:13
回答 1查看 262关注 0票数 0

可能重复:

Why is this code invalid in C#?

请你分析一下CS1和CS2。为什么我需要在CS1中添加CS1,而在CS2中使用_my_date = null;。如果我没有在(DateTime?)中添加CS1,那么我将得到“祝福”:(由于没有.,因此无法确定条件表达式的类型

代码语言:javascript
复制
        DateTime? _my_date;
        DataTable _dt = GetData();

        // Code Snippet 1: CS1
        _my_date = _dt.Rows[0]["MyDate"] == DBNull.Value ? (DateTime?)null : Convert.ToDateTime(_dt.Rows[0]["MyDate"]);

        // Code Snippet 2: CS2
        if (_dt.Rows[0]["MyDate"] == DBNull.Value)
        {
            _my_date = null;
        }
        else
        {
            _my_date = Convert.ToDateTime(_dt.Rows[0]["MyDate"]);
        }
EN

回答 1

Stack Overflow用户

发布于 2011-07-28 14:03:52

因为无法确定'null‘的类型。我想这和类型的大小有关。例如,null,意味着所有的位将被设置为0(我在这里推测),那么您需要知道您的结构中有多少位。例如,一个短的字节比一个DateTime小。

因此,在这种情况下,您需要通知它它所期望的类型,因为它不能将null转换为可空日期时间。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6860174

复制
相关文章

相似问题

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