局部变量范围错误
我有以下代码:
if (Current == false)
{
foreach (var visual in visuals)
visual.IsSelected = value;
}
Visual visual = visuals[currentIndex];
而当我编译我有这个错误:
名为'visual'的局部变量不能在此范围内声明,因为它会给'visual'赋予不同的含义,'visual'已经在'child'范围内用于表示其他内容
另外,如果我不声明visual
变量,那就是我替换:
Visual visual = visuals[currentIndex];
有:
visual = visuals[currentIndex];
错误如下:
名称'可视'在当前上下文中不存在
为什么会这样?
在第一种情况下,在外部和内部声明的变量(全局和本地)之间存在歧义。
编译器对于你指的是什么样的visual
感到困惑。 外面的一个还是内部的?
而在第二种情况下,编译器不知道什么是visual
。
在这里阅读更多信息;
为什么会这样?
在你的第一种情况下,你已经在foreach循环中声明了名称为visual
的变量。
在第二种情况下,您不能使用关键字visual
因为它不存在。 它只在你的foreach循环中可用。
尝试这个:
Visual visual1 = visuals[currentIndex];
if (Current == false)
{
foreach (var visual in visuals)
visual.IsSelected = value;
}
// Parent and child scope have same variable name so it creates ambiguity.
Visual visual = visuals[currentIndex];
和
if (Current == false)
{
foreach (var visual in visuals)
visual.IsSelected = value;
}
// The variable visual in not defined outside the scope of if statement
visual = visuals[currentIndex];
链接地址: http://www.djcxy.com/p/53049.html
上一篇: Local variable scope error
下一篇: Why doesn't C# allow me to use the same variable name in different scopes?