前段时间,在论坛上看到一个帖子,说的是三目运算的效率要大于if else。。当时我也有这样的想法,既然三目运算符效率比if else好,那么要if else干嘛?就在昨天,终于碰到了这样的问题。数据库中AddTime是smalldatetime类型,创建实体类的时候,将AddTime设置成了string类型。在应用中,AddTime需要在特定的时候置成NULL,这时,问题就来了。当时将model.AddTime=null;编译的时候报错,然后设置model.AddTime="",编译的时候报错说DateTime类型不正确,最后,设置model.AddTime = string.Empty;修改更新数据库代码时这样写了下:parameters[1].Value = string.IsNullOrEmpty(model.AddTime) ? DBNull.Value : model.AddTime;编译的时候报错,说DBNull.Value : model.AddTime无法隐式转换,我当时就疯了,无奈之下,使用了if else
if (string.IsNullOrEmpty(model.AddTime))
{
    parameters[2].Value = DBNull.Value;
}
else
{
     parameters[2].Value = model.AddTime;
}
这样,问题才得以解决。所以才明白一点,存在即合理。确实是这样。。
刚开始写.NET不久,所以这也算是一些低级错误吧。有更合理的方法,请大家帮我下,在此谢谢大家了