Удивительно, что String.Clone()
не возвращает копию строки, которую будет выполнять String.Copy()
. Вместо этого он возвращает 'this'
, исходную строку.
Я хотел бы понять, почему команда .Net Framework решила пойти таким образом.
По MSDN:
Интерфейс ICloneable [...] требует, чтобы ваша реализация метод Clone возвращает копию текущего экземпляра объекта.
String.Clone()
ясно не соответствует этому руководству.
Я знаю, что строки неизменяемы, но если неизменность была причиной здесь, String.Copy()
также вернул бы this
, но это не так.
Это, конечно, довольно теоретический вопрос.