可能重复:
Why is this code invalid in C#?
请你分析一下CS1和CS2。为什么我需要在CS1中添加CS1,而在CS2中使用_my_date = null;。如果我没有在(DateTime?)中添加CS1,那么我将得到“祝福”:(由于没有.,因此无法确定条件表达式的类型
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"]);
}发布于 2011-07-28 14:03:52
因为无法确定'null‘的类型。我想这和类型的大小有关。例如,null,意味着所有的位将被设置为0(我在这里推测),那么您需要知道您的结构中有多少位。例如,一个短的字节比一个DateTime小。
因此,在这种情况下,您需要通知它它所期望的类型,因为它不能将null转换为可空日期时间。
https://stackoverflow.com/questions/6860174
复制相似问题