title: c# out parameter, why I have assigned the value to my variable, still can't return?
body: <p>I have a simple method like below, </p>
  
  <pre><code>        private int Increment(out n) {
              int n = 46;
              return n++;
          }
  </code></pre>
  
  <p>as my understanding, using out must initialise the variable first, but I still got the error of </p>
  
  <pre><code>return n++ 
  </code></pre>
  
  <blockquote>
    <p>The out parameter 'n' must be assigned to before control leaves the current method </p>
  </blockquote>
  
  <p>I also got an error of my variable </p>
  
  <pre><code>int n = 46;
  </code></pre>
  
  <blockquote>
    <p>A local or parameter named 'n' cannot be declared in this scope because that name is used in an enclosing local scope to define a local or parameter  </p>
  </blockquote>
  
  <p>My question is, why I can't declare a new variable inside my method, it seems I must declare my variable outside of the method, then assigned the value inside the method.</p>
  
  <p>If I just out, it means I must pass variable int to my method, can't I created inside the method? And out the parameter's pointer I declare inside my method?</p>