¿De qué sirve System.String.Copy en .NET?
Me temo que esta es una pregunta muy tonta, pero debo estar perdiendo algo.
¿Por qué podría uno querer usar String.Copy (cadena)?
La documentación dice el método
Crea una nueva instancia de String con el mismo valor que una String especificada.
omo las cadenas son inmutables en .NET, no estoy seguro de cuál es el beneficio de usar este método, ya que creo que
string copy = String.Copy(otherString);
para todos los fines prácticos parece dar el mismo resultado que
string copy = otherString;
Eso es, excepto por la contabilidad interna que está sucediendo, y el hecho de que la copia no esReferenceEquals
to otherString, no hay diferencias observables: String es una clase inmutable cuya igualdad se basa en el valor, no en la identidad. (Gracias a @Andrew Hare por señalar que mi fraseo original no era lo suficientemente preciso como para indicar que me di cuenta de que había una diferencia entreCopy
ing y no, pero estaba preocupado por la falta percibida deúti diferencia.)
Por supuesto, cuando pasó unnull
argumento, Copiar arroja unArgumentNullException
, y la "nueva instancia" podría consumir más memoria. Esto último apenas parece un beneficio, y no estoy seguro de que el cheque nulo sea una bonificación lo suficientemente grande como para garantizar un método de copia completo.
Gracias