我有以下代码:
if (Current == false)
{
foreach (var visual in visuals)
visual.IsSelected = value;
}
Visual visual = visuals[currentIndex];当我编译时,会出现以下错误:
不能在此作用域中声明名为“visual”的局部变量,因为它将赋予“visual”不同的含义,而“visual”已在“子”作用域中用于表示其他内容。
另外,如果我不声明visual变量,即替换:
Visual visual = visuals[currentIndex];通过以下方式:
visual = visuals[currentIndex];错误如下:
名称“visual”在当前上下文中不存在。
为什么会有这种行为?
发布于 2014-04-05 11:09:21
在第一种情况下,声明在外部和内部的变量(全局变量和本地变量)之间存在模糊性。
编译器对您指的是什么visual感到困惑。外部的还是内部的?
在第二种情况下,编译器不知道什么是visual。
阅读更多关于它的这里;
发布于 2014-04-05 11:09:19
为什么会有这种行为?
在第一个例子中,您已经在foreach循环中声明了名为visual的变量。
在第二种情况下,您不能使用关键字visual,因为它不存在。它只在您的foreach循环中可用。
试试这个:
Visual visual1 = visuals[currentIndex];发布于 2014-04-05 11:26:51
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];https://stackoverflow.com/questions/22880018
复制相似问题