我刚学习了对象初始化程序,想知道何时使用它们最佳实践。
这是我读到的内容:http://msdn.microsoft.com/en-us/library/vstudio/bb384062.aspx 它明确指出它们用于创建匿名类型,但我想知道在所有其他情况下是否应尽量优先使用它们而不是普通构造函数。
我刚学习了对象初始化程序,想知道何时使用它们最佳实践。
这是我读到的内容:http://msdn.microsoft.com/en-us/library/vstudio/bb384062.aspx 它明确指出它们用于创建匿名类型,但我想知道在所有其他情况下是否应尽量优先使用它们而不是普通构造函数。
var yourInst = new YourClass(req1, req2) { OptionalProperty = opt1 }
这可以帮助减少所需的构造函数重载数量(类似于使用可选参数,但没有可选参数版本控制的一些缺点)。
我认为您对事情产生了混淆。
对象初始化程序将调用类的默认(或指定的)构造函数!因此,您不能真正使用对象初始化程序替代普通构造函数。因此,在使用对象初始化程序时,您仍然在调用构造函数。
如果您想了解设计中的类的对象初始化程序,则答案仍然适用。确保提供有意义的必要构造函数即可。您无需执行任何特殊操作以启用/允许对象初始化程序。它们是C#编译器自版本3.0以来提供的语法糖,允许您类的用户在构造后立即初始化类的公共成员。