diferencia entre inicializar un objeto con estas dos formas en c # [duplicar]

Esta pregunta ya tiene una respuesta aquí:

¿Por qué los paréntesis del constructor del inicializador de objetos C # 3.0 son opcionales? 5 respuestas

generalmente yo instantáneoinitialize unobject al agregarlo a unlist de esta manera --->

list.add(
   new foo() {                       //     <--- foo()
      field1 = value1,
      field2 = value2 
   }
);

pero una vez que lo intenté --->

list.add(
   new foo {                     //     <--- foo
      field1 = value1,
      field2 = value2 
   }
);

& funcionó !!!

en la segunda forma estoy solocreating unobject sin uso() en la cola de la misma. Entonces, ¿alguien tiene alguna idea acerca de la diferencia entre estas diversas formas de inicializar un objeto?

Respuestas a la pregunta(4)

Su respuesta a la pregunta