title: ref Parameter and Assignment in same line
body: <p>I ran into a nasty bug recently and the simplified code looks like below:</p>
  
  <pre><code>int x = 0;
  x += Increment(ref x);
  </code></pre>
  
  <p>...</p>
  
  <pre><code>private int Increment(ref int parameter) {
      parameter += 1;
      return 1;
  }
  </code></pre>
  
  <p>The value of x after the Increment call is 1!  This was an easy fix once I found out what was happening.  I assigned the return value to a temporary variable and then updated x.  I was wondering what explains this issue.  Is it something in the spec or some aspect of C# that I'm overlooking.</p>