Does it matter where I put the declaration of a variable?
假设我有以下两个示例,将变量声明置于循环VS循环之外是否会有任何区别,特别是在性能方面? 注意:总是在循环内创建一个新对象。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | Method 1: foreach (string name in nameList) { Person person1 = new Person(); person1.fullname = name; } Method 2: Person person1 = null; foreach (string name in nameList) { person1 = new Person(); person1.fullname = name; } |
这是一个微观优化。 因此,不,从性能角度来看,这并不重要。 在实际上所有非平凡程序中,任何性能上的差异都将变得无关紧要。 优化器完全有可能将效率较低的形式转换为效率较高的形式(不要问我是哪一个)。
我更喜欢第一个,因为它的代码略少,并且尽可能多地限制变量范围通常被认为是好的做法。
实际上,与方法1更相似,方法2应该如下所示:
1 2 3 4 5 6 7 | Person person1 = null; foreach (string name in nameList) { person1 = new Person(); person1.fullname = name; } person1 = null; |
因为在循环之后,