¿Por qué los paréntesis de constructor de inicializador de objeto C # 3.0 son opcionales?

Parece que la sintaxis de inicializador de objeto C # 3.0 permite excluir el par de paréntesis abrir / cerrar en el constructor cuando existe un constructor sin parámetros. Ejemplo:

var x = new XTypeName { PropA = value, PropB = value };

Opuesto a:

var x = new XTypeName() { PropA = value, PropB = value };

Tengo curiosidad por qué el par de paréntesis de apertura / cierre del constructor es opcional aquí despuésXTypeName?

Respuestas a la pregunta(5)

Su respuesta a la pregunta