title: Reverse a String without using Reverse. It works, but why?
body: <p>Ok, so a friend of mine asked me to help him out with a string reverse method that can be reused without using String.Reverse (it's a homework assignment for him). Now, I did, below is the code. It works. Splendidly actually. Obviously by looking at it you can see the larger the string the longer the time it takes to work. However, my question is WHY does it work? Programming is a lot of trial and error, and I was more pseudocoding than actual coding and it worked lol.</p>
  
  <p>Can someone explain to me how exactly reverse = ch + reverse; is working? I don't understand what is making it go into reverse :/</p>
  
  <pre><code>class Program
  {
  
      static void Reverse(string x)
      {
  
          string text = x;
          string reverse = string.Empty;
          foreach (char ch in text)
          {
  
              reverse = ch + reverse;
              // this shows the building of the new string. 
              // Console.WriteLine(reverse);
          }
  
          Console.WriteLine(reverse);        
  
      }
      static void Main(string[] args)
      {
  
          string comingin;
          Console.WriteLine("Write something");
          comingin = Console.ReadLine();
         Reverse(comingin);
  
          // pause
          Console.ReadLine();
      }
  
  
  
  }
  </code></pre>