这一个一直困惑着我,但我猜测有一个非常明智的解释为什么会发生。为什么在集合初始值设定项的末尾有一个逗号?
当你有一个集合初始值设定项时,编译器允许一个尾随逗号,
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将只强调增加的线。 因此,例如在代码审查期间,您只需检查新行。