哪个更好
var s = (string)reader[0]
或者
var s = Convert.ToString(reader[0])
?
哪个更好
var s = (string)reader[0]
var s = Convert.ToString(reader[0])
?
我会说 reader.GetString(0)
(string)reader[0]
的性能明显更好。 - mqpvar s = (string)reader[0]
or
var s = Convert.ToString(reader[0])
但是关于这个:
string s = reader["Fieldname"].ToString();
如果您交换/删除/添加列并且索引正在更改,那么这将变得更易读和更安全...这肯定更值得。
有人说硬转换速度快30%。好吧,1毫秒的30%是1,333毫秒?肯定不是整个数据获取的30%。
// Conveys that you are sure that reader[0] is a string and
// if it's not you probably have bigger problems
// than the resulting exception
var s = (string)reader[0];
// Conveys that you are hoping that reader[0] is convertible to a string
var s = Convert.ToString(reader[0])
var s = (string)reader[0]
如果无法转换为字符串,它会给您一个类转换异常,而
var s = Convert.ToString(reader[0])
如果不能转换,它会更加优雅地处理,并且您将获得null。这也将处理更多类型的reader [0]对象,因为其他方法仅允许可以转换为字符串的类型进行强制转换,而此方法将支持Convert类可以处理的任何类型。我认为这更多。但可能不是...
这个更快,根据我的测试大约快了30%:
var s = (string)reader[0];
然而,当它为空时,这不会崩溃:
var s = Convert.ToString(reader[0]);
那么reader.GetString(0);
怎么样?
怎么样?
reader[0].ToString();
我会选择
reader[0].ToString();