2010-02-26 16 views
5

Eventuali duplicati:
Cloning objects in C#Copia C# oggetto lungo con riferimento

Ho un oggetto creato in C# dire Object1. Ho bisogno di eseguire temporaneamente il backup di questo oggetto su un altro oggetto, ad esempio ObjectOriginal.

Tuttavia, se eseguo ObjectOriginal = Object1, qualsiasi modifica all'oggetto 1 ha effetto su ObjectOriginal. Come faccio a fare questo?

+0

dare un'occhiata a http://stackoverflow.com/questions/78536/cloning-objects-in-c – rerun

risposta

2

Tutto dipende da ciò che Object1 è in realtà, vale a dire si tratta di un DataTable, una stringa, o qualcosa di completamente ?

scrivendo:

object Object1 = new Thing(); 
object Object2 = Object1; 

si ottiene un secondo riferimento all'oggetto si un'istanza in prima linea. Quello che dovete fare è guardare "cosa" e vedere se ha una copia, clone o nome simile metodo ed all'uso che:

object Object1 = new Thing(); 
object Object2 = Object1.Copy(); 

per esempio, offre DataTable sia Copia e metodi dei Cloni, dove Copy duplica sia la struttura del DataTable e i dati e Clone duplica solo la struttura.

0

Se si desidera una copia di un oggetto, la domanda è sempre: quanto sarà profonda la copia? Cosa dovrebbe accadere agli oggetti all'interno del mio oggetto. Dovrebbero essere copiati anche questi e se sì, cosa dovrebbe succedere ai loro riferimenti?

Per ulteriori informazioni prendere al punto di partenza this blog post from Brad Abrams.

Problemi correlati