c# - 为什么 foreach 循环内的局部变量与循环外声明的变量冲突?

标签 c#

给定这段代码:

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/

相关文章:

C# Regex.Split 和正则表达式

c# - 异步但不并行

c# - 无锁引用计数

c# - Linq2Sql 测试

c# - EWS 托管 API 拉取通知以查看新电子邮件不起作用

c# - 为什么我不能在 ASP.NET 中使用 LINQ?

c# - 从枚举中获取 DescriptionAttribute

c# - 在 C# 中使用带有字符串 (Dll) 的 C++ 类

c# - mysqldump.exe 没有对 mysql 数据库进行完整备份

c# - 未使用客户端验证生成所需的数据值