【发布时间】:2015-07-01 06:06:47
【问题描述】:
在 C# 中初始化一个新的 List 时,以下两个都将编译:
(1)List<string> s = new List<string>() { "value" };
和
(2)List<string> s = new List<string> { "value" };
案例1和案例2有什么区别?
【问题讨论】:
-
没有。只是
()对于该声明是可选的。 (Resharper 警告多余的()。) -
参见duplicate(它谈到对象初始化器,它们在同一个球场),它链接到Ambiguous Optional Parentheses, Part One。 Eric Lippert 的博客很好地解释了语言设计背后的“为什么”基本原理。