Cuando trabajamos con elementos de tipo Value Type, al crear un nuevo elemento a partir de un original ya existente, el nuevo elemento tomará como valor una copia del valor del original, permaneciendo inalterado el valor del original aunque hagamos cambios al nuevo elemento creado.
Veamos un caso práctico con Strings (son de tipo Value Type) para entender este concepto.
La Variable colorCopiado ha tomado como valor una copia de colorOriginal. Pase lo que le pase a colorOriginal en posteriores Líneas de Código, el valor inicial de colorCopiado será Rojo.
¿Qué pasa si modificamos la Variable colorCopiado?
Como era de esperar, el nuevo valor de colorCopiado es ahora Rojo intenso.
Si atendemos la definición que hemos visto de los tipos Value Type, podemos comprobar que el valor de colorOriginal permanece inalterado con su valor inicial.
Sólo produciremos cambios en el valor de colorOriginal si operamos directamente sobre esta Variable.
¿Habrá producido algún efecto en colorCopiado este cambio que hemos hecho en colorOriginal?
Como era de esperar, no se ha producido ningún cambio ya que colorCopiado se creó a partir de una copia del valor que colorOriginal tenía en el momento de hacer la asignación.