内联使用或不使用'()'初始化列表之间是否有任何细微差别?

Zbi*_*dro 0 c# initialization list

例如,调用之间是否有任何技术差异:

List<string> list = new List<T> () { "one", "two", "tree" };  // with ()
Run Code Online (Sandbox Code Playgroud)

List<string> list = new List<T> { "one", "two", "tree" };    // without ()
Run Code Online (Sandbox Code Playgroud)

结果显然是一样的.但是我感兴趣的是调用方式有什么技术差异,或者这只是一个方便的.NET C#快捷方式.

Mar*_*age 5

没有区别.将集合初始值设定项与默认构造函数一起使用时,不需要括号.但是,如果要使用其他构造函数,则不能省略括号.

一些代码重构工具(如ReSharper)将通过将括号显示为冗余来指示这一点.

集合初始值设定项不限于"内置".NET类型.实现IEnumerable和提供合适Add方法的类型可以使用集合初始化器.