E.g。调用之间有什么技术差异:
List<string> list = new List<T> () { "one", "two", "tree" }; // with ()
和
List<string> list = new List<T> { "one", "two", "tree" }; // without ()
结果显然是一样的。但是我感兴趣的是调用方式有什么技术差异,或者这只是一个方便的.NET C#快捷方式。
答案 0 :(得分:5)
没有区别。将集合初始值设定项与默认构造函数一起使用时,不需要括号。但是,如果要使用其他构造函数,则不能省略括号。
一些代码重构工具(如ReSharper)将通过将括号显示为冗余来指示这一点。
集合初始值设定项不限于“内置”.NET类型。实现IEnumerable
并提供合适的Add
方法的类型可以使用集合初始值设定项。
答案 1 :(得分:1)
两者都会实际编译成
List<string> list;
List<string> temp;
temp = new List<string>();
temp.Add("one");
temp.Add("two");
temp.Add("tree");
list = temp;
如果你检查生成IL代码。