在.net中,块级作用域和函数级作用域对性能有影响吗?



我正在审查一些c#代码,并遇到一些变量的作用域在函数级别,我将在代码块(在这种情况下是循环)中使用它们。对我来说,接近的范围更清晰,更容易推理,这是更喜欢块级范围的足够理由。但我想知道,这是否会对性能产生重大影响?

没有任何性能差异。

变量作用域与变量生存期不同。变量是在函数的堆栈框架中创建的,而不管它是在函数作用域中声明的还是在函数的代码块中声明的。变量在整个函数执行过程中存在,只有编译器根据变量的作用域限制对变量的访问。

(请注意,如果变量实际上是闭包的一部分,而不是常规的局部变量,则适用不同的规则)

最新更新