Performance difference in loop [duplicate]
Possible Duplicate:
Difference between declaring variables before or in loop?
Is there any (or any notable) performance difference when I write for example something like this (consider loading tens or hundreds of thousands rows from DB into the collection of Foo objects):
...
Foo myFoo;
while(reader.Read())
{
myFoo = new Foo();
myFoo.SomeProperty = reader.GetValue(0);
...
fooCollection.Add(myFoo);
}
or this
...
while(reader.Read())
{
Foo myFoo = new Foo();
myFoo.SomeProperty = reader.GetValue(0);
...
fooCollection.Add(myFoo);
}
You're creating a new instance of Foo in each iteration of the loop in both snippets so I wouldn't expect to see a difference.
You should profile your code though, using a tool like eqatec profiler:
http://www.eqatec.com/tools/profiler
Actually the compiler will generate the same IL in each instance.
See similar questions here and here.
精彩评论