两者之间有什么区别?何时使用"对象初始值设定项"而不是"构造函数",反之亦然?我正在使用C#,如果这很重要的话.另外,对象初始化方法是否特定于C#或.NET?
似乎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?