【发布时间】:2011-04-10 03:56:30
【问题描述】:
这个问题一直让我感到困惑,但我猜对它发生的原因有一个非常明智的解释。
当你有一个集合初始化器时,编译器允许尾随逗号,例如
new Dictionary<string, string>
{
{ "Foo", "Bar "},
};
和
new List<string>
{
"Foo",
};
有谁知道为什么编译器允许这个尾随逗号?
【问题讨论】:
这个问题一直让我感到困惑,但我猜对它发生的原因有一个非常明智的解释。
当你有一个集合初始化器时,编译器允许尾随逗号,例如
new Dictionary<string, string>
{
{ "Foo", "Bar "},
};
和
new List<string>
{
"Foo",
};
有谁知道为什么编译器允许这个尾随逗号?
【问题讨论】:
可能主要用于代码生成器之类的工具,在哪里非常方便不必知道这是第一项还是最后一项。可以说这不应该是决定性因素,但是(编写了这样的工具)我对此表示感谢。
【讨论】:
【讨论】:
这很方便程序员,因为开发人员可以简单地复制和粘贴最后一行来扩展列表。 C#/.NET 像这样很好:)
【讨论】:
我猜有两个原因:
【讨论】:
当你改变这个时:
new List<string>
{
"Foo",
};
到那个:
new List<string>
{
"Foo",
"Bar",
};
Diff-Tools 只会突出显示添加的行。 所以例如在代码审查期间,您只需检查新行。
【讨论】: