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