Uno de los beneficios faltado a menudo es atomicidad. Esto es útil si está usando double-checked locking en un objeto. El inicializador de objeto devuelve el nuevo objeto después de haber inicializado todos los miembros que le indicó. A partir del ejemplo en el artículo de MSDN:
StudentName student = new StudentName
{
FirstName = "Craig",
LastName = "Playstead",
ID = 116
};
se traduciría a algo como lo siguiente:
StudentName _tempStudent = new StudentName();
_tempStudent.FirstName = "Craig";
_tempStudent.LastName = "Playstead";
_tempStudent.ID = 116;
StudentName student = _tempStudent;
Esto asegura que no se ha inicializado student
parcialmente. O bien será null
o completamente inicializado, lo cual es útil en escenarios de subprocesos múltiples.
Para obtener más información al respecto, puede consultar el artículo this.
Otra ventaja es que le permite crear objetos anónimos (por ejemplo, para crear una proyección o unir varias teclas en LINQ).
Es un azucar sintáctico para guardar algunas pulsaciones de teclas y obtener código en una sola instrucción ejecutable (para cosas como inline linq calls). El estilo también es prestado para la creación de tipo anónimo: 'new {FirstName =" Adam ", Age = 27};' –
Por favor, no incluya información sobre un idioma utilizado en el título de una pregunta a menos que no tenga sentido sin él. Las etiquetas sirven para este propósito. –
editado 18 meses de edad pregunta –