可能重复:
C#变量范围
我遇到过以前从未遇到的事情.因为我知道如何解决它,所以我不是在寻找解决方案.我想知道的是编译器正在做什么.这只是示例代码:
if (true)
{
int x = 0;
}
int x = 0;
Run Code Online (Sandbox Code Playgroud)
该代码产生错误"无法在此范围内声明局部变量'x',因为它会给'x'赋予不同的含义".
但是,我将代码更改为:
if (true)
{
int x = 0;
}
x = 0;
Run Code Online (Sandbox Code Playgroud)
我收到错误"无法解析符号'x'".
那么,这里发生了什么?x是如何在范围内和超出范围?