title: Why are C# 3.0 object initializer constructor parentheses optional?
body: <p>It seems that the C# 3.0 object initializer syntax allows one to exclude the open/close pair of parentheses in the constructor when there is a parameterless constructor existing. Example:</p>
  
  <pre><code>var x = new XTypeName { PropA = value, PropB = value };
  </code></pre>
  
  <p>As opposed to:</p>
  
  <pre><code>var x = new XTypeName() { PropA = value, PropB = value };
  </code></pre>
  
  <p>I'm curious why the constructor open/close parentheses pair is optional here after <code>XTypeName</code>?</p>