给定这段代码:
List<string> things = new List<string>();
foreach (string thing in things)
{
string foo = thing.ToUpper();
}
string foo = String.Empty;
为什么编译器提示 foo 被声明了两次?难道foreach循环中声明的实例只在循环范围内有效?
最佳答案
虽然您只能在声明后引用外部的 foo
,但局部变量是在函数的开头分配的,这意味着内部的 foo
会掩盖外部的,即使尚未声明。
关于c# - 为什么 foreach 循环内的局部变量与循环外声明的变量冲突?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9837066/