usar una leer imprimir funciones extraer ejemplos como caracteres cadenas cadena arreglo c# .net shallow-copy

c# - una - leer cadena de caracteres en c



¿Cómo funcionan las cadenas cuando se está copiando algo en C#? (3)

Las cadenas se consideran tipos de referencia pero pueden actuar como valores. Cuando se trata de copiar poco a poco algo manualmente o con el MemberwiseClone (), ¿cómo se manejan las cadenas? ¿Se los considera separados y aislados de la copia y el maestro?


Considera esto:

public class Person { string name; // Other stuff }

Si llama a MemberwiseClone, terminará con dos instancias separadas de Person, pero sus variables de name , aunque sean distintas, tendrán el mismo valor: se referirán a la misma instancia de cadena. Esto se debe a que es un clon superficial.

Si cambia el nombre en una de esas instancias, eso no afectará al otro, porque las dos variables en sí mismas están separadas; solo está cambiando el valor de una de ellas para referirse a una cadena diferente.


Las cadenas son tipos de referencia. Sin embargo, son inmutables (no se pueden cambiar), por lo que no importaría si se copiaran por valor o se copiaran por referencia.

Si se copian superficialmente, la referencia se copiará ... pero no puede cambiarlos para que no pueda afectar a dos objetos a la vez.


Usted solo está copiando una referencia (piense en "puntero"); las dos referencias están separadas (pero tienen el mismo valor), pero solo hay un único objeto de cadena.