不知道这是因为C#编译器是多余的挑剔,但我尝试做这在C#:为什么我不能在C#中的不同范围内声明一个具有相同名称的变量?
public static void Main()
{
bool result = true; // some dummy value
if(result)
{
int x = 5;
Console.WriteLine(x);
}
int x = 10;
Console.WriteLine(x);
}
编译器会抱怨,变量名“X”已被使用:
一个名为'x'的局部变量不能在这个范围内声明,因为它 会给'x'赋予不同的含义,'x'已经在 的'子'范围中用来表示别的东西。
我明白它认为这是一个范围问题,但它为什么这么认为?
如果我在Java中重现相同的代码,则没有问题。
所以你把它复制,并在同一时间回答一下.. –
@AlexJolig - 它需要5票关闭,这是一个有效的答案。 – Tommy
我做了一个快速的回答后,我做了一个搜索,找到了更好的答案。 –