Surprisingly, String.Clone()
doesn't return a copy of a string as String.Copy()
would do. Instead, it returns 'this'
, the original string.
I would like to understand why the .Net Framework team choose to go this way.
As per MSDN:
The ICloneable interface [...] requires that your implementation of the Clone method return a copy of the current object instance.
String.Clone()
clearly doesn't follow this guideline.
I know that strings are immutable, but if immutability was the reason here, String.Copy()
would also return this
but it doesn't.
This is a rather theoretical question, of course.