title: Is swap method in C# whose parameters have value type not efficient?
body: <p>Check this method:</p>
  
  <pre><code>public static void Swap(ref int i, ref int j)
  {
     int aux=i;
     i=j;
     j=aux;
  }
  </code></pre>
  
  <p>Is it more efficient than this?</p>
  
  <pre><code>public static void Swap1(int[] a, int i, int j)
  {
     int aux=a[i];
     a[i]= a[j];
     a[j]=aux;
  }
  </code></pre>
  
  <p>I'm using these methods like this:</p>
  
  <pre><code>static void Main(string[] args)
  {
      int[] a = { 5, 4, 3, 1 };
      Swap(a[1], a[2]);
      Swap(a, 1, 2);
  }
  </code></pre>
  
  <p>Which of these methods is more efficient and why?</p>