【发布时间】:2012-03-04 16:33:17
【问题描述】:
C# 新手,所以我遇到了速记语句的问题。我要转换...
if (m_dtLastLogin == null)
drow["LastLogin"] = DBNull.Value;
else
drow["LastLogin"] = m_dtLastLogin;
到
drow["LastLogin"] = (m_dtLastLogin == null) ? System.DBNull.Value : m_dtLastLogin;
简写版本效果很好,但是简写版本会生成错误“无法确定条件类型,因为 'System.DBNull' 和 'System.DateTime?' 之间没有隐式转换”。我的支持代码基本上是……
private DateTime? m_dtLastLogin;
m_dtLastLogin = null;
DataRow drow;
drow = m_oDS.Tables["Users"].Rows[0];
有人可以帮我看看这里的速记吗?
【问题讨论】:
-
?:不是“单行 if”,它只是条件运算符。 -
?: 必须在两种情况下返回相同的类型...
-
顺便说一句:我会问
m_dtLAstLogin.HasValue
标签: c# if-statement