title: return new string vs .ToString()
body: <p>Take the following code:</p>
  
  <pre><code>    public static string ReverseIt(string myString)
      {
          char[] foo = myString.ToCharArray();
          Array.Reverse(foo);
          return new string(foo);
      }
  </code></pre>
  
  <p>I understand that strings are immutable, but what I dont understand is why a new string needs to be called</p>
  
  <pre><code>return new string(foo);
  </code></pre>
  
  <p>instead of </p>
  
  <pre><code>return foo.ToString();
  </code></pre>
  
  <p>I have to assume it has something to do with reassembling the CharArray (but thats just a guess).</p>
  
  <p>Whats the difference between the two and how do you know when to return a new string as opposed to returning a System.String that represents the current object?</p>