I was asked this question in an interview: Is string a reference type or a value type.
I said its a reference type. Then he asked me why don\'t we use new operator
Strings are immutable reference types. There's the ldstr IL instruction which allows pushing a new object reference to a string literal. So when you write:
string a = "abc";
The compiler tests if the "abc" literal has already been defined in the metadata and if not declare it. Then it translates this code into the following IL instruction:
ldstr "abc"
Which basically makes the a local variable point to the string literal defined in the metadata.
So I would say that your answer is not quite right as the compiler doesn't translate this into a call to a constructor.