I've been wondering which is faster (or if it even makes a difference), referencing a textbox's Text property or a string assigned to that value? Ref textbox.Text
if(textbox1.Text == "A")
{ //do a million iterations
}
Or
string aString = text开发者_运维百科box1.Text;
if(aString == "A")
{ //do a million iterations
}
I made just a quick analyze using stop watch: 10.000.000 iterations.
In first case it returns to me: 00:00:21.56
In second case it returns to me: 00:00:42.62
In second case you have Get accessor + new pointer to string every iteration, so its slower.
Hope this helps.
EDIT
I put all code of any case inside the iteration. Seems that is the quetion.
I don't think it will make any difference if compiler optimisation is on, but you could test this. Simply repeat the code a couple of million times with a StopWatch class to measure the timing of the total operation.
I think the second option is faster. Reading the property is executing a function which reads the value of the textbox. There is a chance it gets optimized away, on the other hand there may be also a chance the value changes while the loop is executing so it needs to check it every time the property is read.
精彩评论