var item = "" + dr["someString"];
或者
var item = Convert.ToString(dr["somestring"]);
上述示例的性能影响是什么?
答案 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();
}
}