title: c# pass by value
body: <p>I am just wondering to take the following example:</p>
  <pre><code>public void main()
  {
  
     int x = 1;
  
     Foo(x);
  }
  
  public void Foo(int y)
  {
      y = 5;
  }
  </code></pre>
  <p>We know that C# arguments are passed by value for value types. Does this mean in the above example, that I have 2 copies on the stack, one for x and one for y?</p>