可能是重复问题:
C#变量作用域
我遇到了以前从未遇到过的事情。 我不需要解决方法,因为我知道如何解决它。我想知道的是编译器正在做什么。这只是示例代码:
if (true)
{
int x = 0;
}
int x = 0;
那段代码会产生错误:“局部变量'x'不能在此范围内声明,因为它会赋予'x'不同的含义”。
然而,如果我将代码更改为以下内容:
if (true)
{
int x = 0;
}
x = 0;
我遇到了“无法解析符号'x'”的错误。
那么这是怎么回事呢?为什么x既在作用域内又在作用域外呢?