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
How can you tell string is a reference type? I'm not sure that it matters how it is implemented. Strings in C# are immutable precisely so that you don't have to worry about this issue.