使用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类型的许多属性。所以这只是为了让代码更加干净。

使用float.tryparse或运算符?:将对象DBNULL转换为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);