我正在查看一些C#代码,并遇到了一些在函数级别范围内的变量,这些变量应该在使用它们的代码块(在本例中为循环)中进行作用域设置。对我来说,范围越接近越干净,就越容易推论,这足以推崇块级范围。但是我想知道,是否会以一种或另一种方式对性能产生重大影响?
最佳答案
根本没有性能差异。
可变范围不同于可变生存期。变量是在函数的堆栈框架中创建的,无论它是在函数作用域中还是在函数的代码块中声明的。该变量存在于整个函数执行过程中,只有编译器才根据其作用域限制对该变量的访问。
(但是请注意,如果变量实际上是闭包的一部分而不是常规局部变量,则适用不同的规则。)
关于c# - .NET中的块级别与功能级别作用域是否会对性能产生影响,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/33199653/