【问题标题】:Convert object DBNULL to float with float.tryparse or operator ?:使用 float.tryparse 或运算符将对象 DBNULL 转换为浮点数?:
【发布时间】:2014-10-17 20:16:14
【问题描述】:

我有一个简单的问题。

场景:更新数据的方法,当用户没有填写字段速度时(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])

考虑到性能和好的代码,哪个更好?有什么建议吗?

我知道这没什么大不了的,但是我有很多类具有许多浮点类型的属性。所以只是为了让代码更干净。

【问题讨论】:

标签: c# winforms performance refactoring


【解决方案1】:

然后我看一些类似的问题,比如Abe's question 并将我的代码更改为:

 Car.speed = DBNULL.value.Equals(dt.Row[9]) ? 0 : Convert.ToSingle(dt.Row[9])

后来我决定将 asawyer'method(来自同一个链接)与一个新类一起使用,如下所示:

 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);

【讨论】:

    猜你喜欢
    • 2021-07-20
    • 2021-08-11
    • 2021-08-11
    • 2021-06-24
    • 2016-06-08
    • 2013-12-16
    • 2021-05-24
    • 2021-06-18
    • 2013-07-16
    相关资源
    最近更新 更多