title: In C#, why is String a reference type that behaves like a value type?
body: <p>A String is a reference type even though it has most of the characteristics of a value type such as being immutable and having == overloaded to compare the text rather than making sure they reference the same object.</p>
  
  <p>Why isn't string just a value type then?</p>