AD

¿Ya dominas lo básico? Un curso estructurado de C# es la vía rápida para dar el salto.

Ver cursos de C# en Udemy

Enlace de afiliado. No te cuesta nada extra.

#️⃣Lecciones de C#
Lección 40 / 68

Copia superficial y copia profunda

En esta lección verás qué se copia de verdad al asignar un objeto y qué no.

Asignar una variable de clase copia la referencia, no el objeto. Las dos variables apuntan a lo mismo, así que un cambio a través de una se ve desde la otra.

El código de ejemplo copia un objeto y lo modifica a través de la copia; el original también cambia.

Aquí está la distinción central de C#: una class es un tipo por referencia y un struct es un tipo por valor, que sí se copia entero al asignarlo. Los tipos básicos como int y bool son struct, y por eso se comportan como esperas.

Es una de las fuentes de error más difíciles de diagnosticar, porque el síntoma aparece lejos de la causa. La forma más limpia de evitarlo es hacer los objetos inmutables — con record, cuyo método with crea una copia modificada sin tocar el original.

📖 Código de referencia
✍️ Tu código
Escribe tu código y pulsa «Ejecutar»

🧪 Este sitio no puede compilar ni ejecutar C# directamente, así que comprueba al instante si lo que escribiste coincide con el código de referencia (la corrección ocurre por completo en tu navegador; no se envía nada a ningún servidor).

🔗 El mismo tema en otros lenguajes

Mira cómo se escribe lo mismo en otro lenguaje.

Espacio publicitario (banner)
Espacio publicitario (en el artículo)