我一直想知道哪个更快(或者它是否有所不同),引用文本框的Text属性或分配给该值的字符串? 参考textbox.Text
if(textbox1.Text == "A")
{ //do a million iterations
}
或者
string aString = textbox1.Text;
if(aString == "A")
{ //do a million iterations
}
答案 0 :(得分:2)
我使用秒表进行了快速分析:10.000.000次迭代。
在第一种情况下它返回给我:00:00:21.56
在第二种情况下它返回给我:00:00:42.62
在第二种情况下,每次迭代都有Get accessor +指向字符串的新指针,因此速度较慢。
希望这有帮助。
修改强>
我在迭代中放置任何案例的所有代码。似乎就是这个问题。
答案 1 :(得分:0)
我认为如果打开编译器优化会产生任何影响,但您可以对此进行测试。只需使用StopWatch类重复代码几百万次,即可测量总操作的时间。
答案 2 :(得分:0)
我认为第二种选择更快。读取属性正在执行一个读取文本框值的函数。它有可能被优化掉,另一方面,循环执行时值可能也会有变化,所以每次读取属性时都需要检查它。