Est-il préférable de déclarer une variable à l'intérieur ou à l'extérieur d'une boucle?

Est mieux de le faire:

variable1Type foo; 
variable2Type baa; 

foreach(var val in list) 
{
    foo = new Foo( ... ); 
    foo.x = FormatValue(val); 

    baa = new Baa(); 
    baa.main = foo; 
    baa.Do();
}

Ou:

foreach(var val in list) 
{
    variable1Type foo = new Foo( ... ); 
    foo.x = FormatValue(val); 

    variable2Type baa = new Baa(); 
    baa.main = foo; 
    baa.Do();
}

La question est: qui est le plus rapide 1 ou 2 cas?
La différence est insignifiante? Est-il le même dans les applications réelles?
Cela peut être une optimisation de micro, mais je veux vraiment savoir ce qui est mieux.

  • Il n'y a pas de différence de performances si vous n'êtes pas la capture de la variable dans une expression lambda.
  • Vous devriez valeur de la différence sémantique et non la différence de performances, qui dans ce cas n'est. En déclarant à l'intérieur de la boucle automatiquement vous savez qu'il est utilisé uniquement à l'intérieur de la boucle.
  • Je déteste faire ça, mais -1: votre question n'est pas une indication de l'effort de recherche. Vous pourriez avoir certainement testé cela sur votre propre.
  • Permettez-moi d'ajouter: - vous posez des questions à propos de la performance, afin de connaître la bonne façon. Dans ce cas (comme dans beaucoup d'autres) la bonne façon est de penser à d'autres choses que de la performance.
  • Je dirais que, plus tard, le code est plus lisible
InformationsquelleAutor The Mask | 2011-12-16