【发布时间】:2025-12-19 09:40:11
【问题描述】:
我正在使用NameValueCollection 来存储稍后将发布到 API 服务器的值。今天我在初始化NameValueCollection 的实例时不小心添加了额外的逗号,如下面的简单代码:
NameValueCollection nvc = new NameValueCollection()
{
["foo"] = "bar",
["hello"] = "world", // <-- an extra comma here
};
请注意,world 值后面有多余的逗号。此代码在我的计算机和其他开发人员的计算机上正常编译,有或没有额外的逗号。但即使使用正确的代码,我也无法让它在.NET Fiddle 上运行。如果重要的话,我正在使用 .NET 4.6.1。
我知道初始化NameValueCollection 的不同方式就像上面的小提琴一样,但这不是问题/问题。我的问题是,为什么编译器可以编译这个损坏的代码而不发出一些警告?或者我的 Visual Studio 设置在某处不正确?或者我错过了一些编码原则?请指教。谢谢。
【问题讨论】:
-
它是有效的 C# - 7 的东西?有“小提琴”链接吗?也许它使用的是旧的 C# 语言目标(6?早期 7?),它确实支持“赋值”语法(以及带有尾随逗号的 naught)。
-
@user2864740 我想我使用的是 C# 6,因为我电脑上安装的 .NET 是 4.6.1。该问题提供了小提琴链接,或请访问此 [dotnetfiddle.net/131Nvm](链接)。
-
该字典初始化器可从 C#6 获得。 .Net Framework 与 C# 版本无关。附加到最后一个元素的逗号将被忽略。
-
@peter-duninho,哎呀,我没有找到问题。谢谢你指点我。