title: String Equal problems in C#
body: <p>here is C# code.</p>
  
  <pre><code>class Program
      {
          static void Main(string[] args)
          {
              char [] arry = {'a', 'b', 'c'};
  
              String str1 = 'a' + "bc";
              String str2 = "bcd";
              String str3 = new String(arry);
  
              if (str1 == str2)
                  Console.WriteLine("str1 == str2");
              if (str1 == str3)
                  Console.WriteLine("str1 == str3");
              if (String.Equals(str1, str3))
                  Console.WriteLine("String.Equals(str1, str3)");
  
              String str4 = GetStr();
              if (str1 == str4)
                  Console.WriteLine("str1 == str4");
              if (String.Equals(str1, str4))
                  Console.WriteLine("String.Equals(str1, str4)");
  
              if (str3 == str4)
                  Console.WriteLine("str3 == str4");
              if (String.Equals(str3, str4))
                  Console.WriteLine("String.Equals(str3, str4)");
          }
  
          public static String GetStr()
          {
              String str = "ab" + 'c';
              return str;
          }
      }
  </code></pre>
  
  <p>And result is ..</p>
  
  <pre><code> str1 == str3
   String.Equals(str1, str3)
   str1 == str4
   String.Equals(str1, str4)
   str3 == str4
   String.Equals(str3, str4)
  </code></pre>
  
  <p>Why all results say "Equal!" ??
  As I knew, reference value are different each others.
  So, results should have been "different!". but not.
  Why?
  It seems that there is no reason to use String.equal() !!</p>