Initialization expression in c#
<p>I have the following line of code</p>

<pre><code>int i = (i = 20);
</code></pre>

<p>and it sets the value of i to 20. Now my question is, are the two statements same ? </p>

<pre><code>int a = 0;

int i = (a = 20);
</code></pre>

<p>and </p>

<pre><code>int a = 0;

int i = a = 20;
</code></pre>

<p>Both the statements will set the values as <code>i = 20</code> and <code>a = 20</code>. What's the difference?</p>

<p>If they are same then why are there braces for equating the value?</p>
