无法确定条件表达式的类型,因为“”和“int”之间没有隐式转换

 

 当在C#使用可空类型时要注意类型间的一致,出现上述 和int无法转换的问题就是没有注意类型间的一致,例如,当给一个可空的时间类型字段赋值时不能使用null,而要使用一个int? 类型。类似的还有其它类型如DataTime等。

下面是Model层的字义: public DateTime? BeginTime { get; set; } 当在前台给此字段赋值时如用下面的方法就会出现标题所示的错误: BeginTime = string.IsNullOrEmpty(txtBeginDate.Text) ? null : Convert.ToDateTime(txtBeginDate.Text),

如果要使用则需要在此代码前添加此代码 DateTime? NullTime = null;

最后的赋值就成了: BeginTime = string.IsNullOrEmpty(txtBeginDate.Text) ? NullTime : Convert.ToDateTime(txtBeginDate.Text),

注意:null是一个值类型,如果要难BeginTime赋值则要用DateTime?类型。可空类型解决了一些问题如:值类型不能为空的问题。int?就表示可空 ,可空类型概念比较多,后面再继续说。

你可能感兴趣的:(C#,null)