C sharp - Asignar por valor un objeto

 
Vista:

Asignar por valor un objeto

Publicado por José Luis (2 intervenciones) el 23/04/2006 20:10:49
Antes de nada, he estado buscando días sobre esto y en vistas de que no he obtenido respuesta me arriesgo a realizar una pregunta estúpida:

¿La asígnación de un objeto a otro es (por defecto) por referencia?
(Al menos en mi proyecto lo es, incluido los pasos por parámetros de objetos cosa que tampoco entiendo)

Si es así, ¿cómo puedo asignar un objeto a otro por valor?

Me estoy volviendo loco con esta tontería y no me permite avanzar.

Agradezco por adelantado vuestro tiempo.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Asignar por valor un objeto

Publicado por José Luis (2 intervenciones) el 24/04/2006 12:57:54
Bueno, tras algunos días más de busqueda he encontrado la respuesta. Por ello y por si a alguien le puede ser de utilidad, voy a auto-responderme:

Las asignaciones de objetos (que no de structs) es, por defecto, por refencia.

Si queremos copiar un objeto por valor, debemos usar el método "Clone()" para crear una copia del objeto.

Para nuestros propios objetos, si queremos implementar el método Clone() debemos implementar la interfaz ICloneable.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Asignar por valor un objeto

Publicado por Juan (19 intervenciones) el 04/05/2006 20:10:48
Pero debes tener en cuenta que si nuestro tipo estructurado esta constituidos por otros tipos, y estos no sobreescriben el Clone() de la clase Object ellos seguiran siendo por referencia.

Por ejemplo, si defines un tipo persona, y esta persona tiene un tipo fecha de nacimiento, deberas definir el clone en ambas clases, y cuando implementes el clone en la clase persona debes hacer una llamada al clon del tipo fecha de nacimiento, y repetir este proceso en caso de que fecha de nacimiento llegase a tener otro tipo definido por el usuario en su definicion
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar