title: Shouldn't string.Format be more efficcient than x + "" + y?
body: <p>So I was thinking about what's more efficient, making a number by directly adding them as a string to each other, or string.Formatting them.</p>
  
  <p>So I made a little code piece:</p>
  
  <pre><code>    private static void measuringStuff()
      {
          Stopwatch stw = new Stopwatch();
          Random random = new Random();
          string a;
  
          stw.Start();
          for (int i = 0; i &lt; 10000000; i++)
          {
              a = random.Next(10) + "" + random.Next(10);
          }
          stw.Stop();
          Console.WriteLine("#+\"\"+#: " + stw.ElapsedMilliseconds);
  
          stw.Reset();
          stw.Start();
          for (int i = 0; i &lt; 10000000; i++)
          {
              a = string.Format("{0}{1}", random.Next(10), random.Next(10));
          }
          stw.Stop();
          Console.WriteLine("string.Format: " + stw.ElapsedMilliseconds);
      }
  </code></pre>
  
  <p>And it turns out:</p>
  
  <pre><code># + "" + #: 1928
  string.Format: 2667
  </code></pre>
  
  <p>Why?</p>