Copiando una clase (no referenciarla)

06/02/2004 - 19:30 por ~toki | Informe spam
Tengo una clase que tiene una propiedad llamada Nombre = "pepe"

Cuando hago una copia (Pepe pepe = oldpepe;)
y le cambio la propiedad pepe.Nombre = "pepe1"
oldpepe.Nombre cambia tambien a "pepe1"

Como evito esto y por que una copia es referenciada?
 

Leer las respuestas

#1 Pedro Luna Montalvo
06/02/2004 - 19:48 | Informe spam
No es una copia referenciada.

Piensa que ambas tienen punteros que estan señalando al mismo objeto.

Cuando haces la asignacion, lo que estas copiando es la direccion del
objeto, por lo tanto ambos se ven afectados por los cambios que se hagan en
el mismo.

Para evitarlo, implementa en la clase "Pepe", un método que sirva para
Clonar la clase.
Las clases heredan un metodo protegido MemberwiseClone que hace una copia
"superficial" del objeto. Puede que te sea util.

Saludos
Pedro


"~toki" <pedorro77.hotmail.com> escribió en el mensaje
news:
Tengo una clase que tiene una propiedad llamada Nombre = "pepe"

Cuando hago una copia (Pepe pepe = oldpepe;)
y le cambio la propiedad pepe.Nombre = "pepe1"
oldpepe.Nombre cambia tambien a "pepe1"

Como evito esto y por que una copia es referenciada?


Preguntas similares