使用float.tryparse或运算符?:将对象DBNULL转换为float
本文关键字:float 对象 DBNULL 转换 tryparse 运算符 使用 | 更新日期: 2023-09-27 18:26:59
我有一个简单的问题。
场景:当用户没有填写字段速度(dt。Row[9])时,更新数据的方法。
//Car.speed is float and dt.row[9] is a object
float speedo;
float.TryParse(dt.Row[9].ToString(), out speedo);
Car.speed = speedo
或
Car.speed = dt.Row[9].ToString().Equals(string.Empty) ? 0 : Convert.ToSingle(dt.Row[9])
考虑到性能和良好的代码,什么更好?有什么建议吗?
我知道这不是什么大不了的事,但我有很多类具有float类型的许多属性。所以这只是为了让代码更加干净。
然后我查看一些类似的问题,比如Abe的问题,并将我的代码更改为:
Car.speed = DBNULL.value.Equals(dt.Row[9]) ? 0 : Convert.ToSingle(dt.Row[9])
稍后,我决定将asawyer'方法(来自同一链接)与一个新类一起使用,如下所示:
public static class ExtensionDBNull
{
public static float DBNullToFloat(this object TheObject, object DefaultValue)
{
return DBNull.Value.Equals(TheObject) ? 0 : Convert.ToSingle(TheObject);
//if (TheObject is DBNull)
// return DefaultValue;
//return Convert.ToSingle(TheObject);
}
}
所以现在我有
Car.speed = ExtensionDBNull.ObjectToFloat(dt.row[9],0);