tags:

views:

97

answers:

2

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);
}
+4  A: 

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

Charlie
+2  A: 

Actually the compiler will generate the same IL in each instance.

See similar questions here and here.

Winston Smith