0

尝试编译此代码时出现语法错误,我不太确定原因。任何人都可以帮助我修复此代码吗?

DateTime? ModifiedDate = null;

ModifiedDate = (dbReader["ModifiedDate"] == DBNull.Value ? null : DateTime.Parse(dbReader['ModifiedDate'].ToString()));
4

2 回答 2

8

当涉及到条件运算符时,条件的两边都应该返回相同的类型(或者可以隐式转换的类型)。

Nownull不是特定类型,这是问题的一部分-您需要将其强制转换为DateTime?以便匹配另一侧-这还有另一个问题:您使用'的是".

以下将起作用:

DateTime? ModifiedDate = 
               dbReader["ModifiedDate"] == DBNull.Value ? 
                          (DateTime?)null : 
                          DateTime.Parse(dbReader["ModifiedDate"].ToString());
于 2013-05-31T19:24:20.547 回答
1
DateTime? ModifiedDate = dbReader["ModifiedDate"] == DBNull.Value ? (DateTime?)null : DateTime.Parse(dbReader["ModifiedDate"].ToString());

您不小心使用了字符分隔符而不是字符串分隔符。上面是固定的。

于 2013-05-31T19:22:07.033 回答