实例化新的空“列表”样式对象有两种替代样式:
var list = new SomeListType<int>();
要么
var list = new SomeListType<int> { };
第一个依赖于允许基本构造函数设置对象,第二个似乎也隐式依赖于该构造函数,但还指定了一个空的初始化程序列表。
(初始化器列表故意留空,例如在某些情况下它似乎更具可读性或清晰性。)
这两种方法之间在实践或功能上有什么区别吗?
(注意-
SomeListType
可以是可以这样构造的任何东西-例如标准List<T>
或某些自定义类。仅使用int
为例)。 最佳答案
对于这两个选项,即使生成的IL代码也将相同:
newobj instance void class Namespace.SomeListType`1<int32>::.ctor()
因此根本没有功能上的差异。
关于c# - 初始化程序语法与无参数构造函数语法,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/53780826/