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

Lei*_*ski 3 c#

var item = "" + dr["someString"];
Run Code Online (Sandbox Code Playgroud)

要么

var item = Convert.ToString(dr["somestring"]);
Run Code Online (Sandbox Code Playgroud)

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

Mar*_*ell 8

怎么样:

var item = (string)dr["someString"] ?? "";
Run Code Online (Sandbox Code Playgroud)

这避免了不必要的连接,不必要的虚拟调用,并避免了在空引用上调用方法的风险.目前尚不清楚dr这方面的情况; 如果它是数据阅读器(IDataReader等),您可能需要:

int index = dr.GetOrdinal("someString");
var item = dr.IsDBNull(index) ? "" : dr.GetString(index);
Run Code Online (Sandbox Code Playgroud)

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