似乎C#3.0对象初始化程序语法允许在存在无参数构造函数时排除构造函数中的打开/关闭括号对.例:
var x = new XTypeName { PropA = value, PropB = value };
Run Code Online (Sandbox Code Playgroud)
相反:
var x = new XTypeName() { PropA = value, PropB = value };
Run Code Online (Sandbox Code Playgroud)
我很好奇为什么构造函数打开/关闭括号对后面是可选的XTypeName?
一般情况下initialize,object当我list
用这种方式将它添加到一个时候即刻- >
list.add(
new foo() { // <--- foo()
field1 = value1,
field2 = value2
}
);
Run Code Online (Sandbox Code Playgroud)
但是一旦我尝试了--->
list.add(
new foo { // <--- foo
field1 = value1,
field2 = value2
}
);
Run Code Online (Sandbox Code Playgroud)
& 有效 !!!
在第二种方式,我只是creating一个object没有使用()它的尾巴.那么有没有人知道这些初始化对象的各种方法之间的区别?