Я боюсь, что это очень глупый вопрос, но я должен что-то упустить.
Почему можно использовать String.Copy(string)?
В документации указан метод
Создает новый экземпляр String с то же значение, что и указанная строка.
Так как строки неизменяемы в .NET, я не уверен, что польза от использования этого метода, поскольку я думаю, что
string copy = String.Copy(otherString);
для всех практических целей, похоже, даст тот же результат, что и
string copy = otherString;
То есть, за исключением того, что происходит внутренняя бухгалтерия, и тот факт, что копия не является ReferenceEquals
для другойString, не существует различимых различий - String является неизменным классом, чье равенство основано на значении, а не на идентификаторе.
(Спасибо @Andrew Hare за указание, что моя оригинальная фраза не была достаточно точной, чтобы указать, что я понял, что существует разница между Copy
ing и нет, но она была обеспокоена отсутствием полезной разницы.)
Конечно, когда передано аргумент null
, Copy выдает ArgumentNullException
, а "новый экземпляр" может потреблять больше памяти. Последнее вряд ли похоже на пользу, и я не уверен, что нулевая проверка - достаточно большой бонус, чтобы гарантировать весь метод копирования.
Спасибо.