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#快捷方式.
没有区别.将集合初始值设定项与默认构造函数一起使用时,不需要括号.但是,如果要使用其他构造函数,则不能省略括号.
一些代码重构工具(如ReSharper)将通过将括号显示为冗余来指示这一点.
集合初始值设定项不限于"内置".NET类型.实现IEnumerable和提供合适Add方法的类型可以使用集合初始化器.