Why does this C# assignment throw an exception?
<pre><code>public class A
{
    private string _a_string;
    public string AString
    {
        get { return _a_string; }
        set {  _a_string = value; }
    }
}

public class B
{
    private string _b_string;
    private A _a;

    public A A
    {
        get { return _a; }
        set { _a = value; }
    }

    public string BString
    {
        get { return _b_string;  }
        set { _b_string = value; }
    }
}
</code></pre>

<p>This does not work:</p>

<pre><code>    B _b = new B { A = { AString = "aString" }, BString = "bString" };
</code></pre>

<p><strong>System.NullReferenceException : Object reference not set to an instance of an object.</strong></p>

<p>This works:</p>

<pre><code>    B _b = new B { A = new A { AString = "aString" }, BString = "bString" };
</code></pre>

<p>Both compile fine in VS2010.</p>
