什么是最好的Convert.ToString()或只是与空字符串连接?

时间:2012-03-09 11:42:27

标签: c#

var item = "" + dr["someString"];

或者

var item = Convert.ToString(dr["somestring"]);

上述示例的性能影响是什么?

2 个答案:

答案 0 :(得分:8)

怎么样:

var item = (string)dr["someString"] ?? "";

避免了不必要的连接,不必要的虚拟调用,并避免了在null引用上调用方法的风险。目前尚不清楚dr在这种背景下是什么;如果它是数据阅读器(IDataReader等),您可能需要:

int index = dr.GetOrdinal("someString");
var item = dr.IsDBNull(index) ? "" : dr.GetString(index);

或在DataTable的情况下,涉及DataRow.IsNull

答案 1 :(得分:2)

dr["someString"].ValueOrEmpty()怎么了?

至于你原来的问题。表现无关紧要。我向你保证,还有其他几个方面可以进行优化,从而提高性能。

编写最易读的代码。并且在经过证明您需要之前不要进行优化。

<强>更新

public static class StringExtensions
{
    public static string ValueOrEmpty(this object obj)
    {
        return obj == null ? "" : obj.ToString();
    }
}