Si te encuentras con algo que no comprendes nos puedes dejar un comentario y haremos todo lo posible de ayudarte lo más rápido posible.
Solución:
Podrías hacerlo:
class myClass : ICloneable
public String test;
public object Clone()
return this.MemberwiseClone();
entonces puedes hacer
myClass a = new myClass();
myClass b = (myClass)a.Clone();
nótese bien MemberwiseClone()
Crea una copia superficial del System.Object actual.
No hay forma integrada. Puede hacer que MyClass implemente el IClonable
interfaz (pero está un poco obsoleta) o simplemente escriba su propio método Copiar/Clonar. En cualquier caso, tendrás que escribir algo de código.
Para objetos grandes, podría considerar la serialización + deserialización (a través de un MemoryStream), solo para reutilizar el código existente.
Cualquiera que sea el método, piense detenidamente qué significa exactamente “una copia”. ¿Qué tan profundo debe ser, hay campos de identificación para ser exceptuados, etc.
La forma más fácil de hacer esto es escribir un constructor de copias en la clase MyClass.
Algo como esto:
namespace Example
class MyClass
public int val;
public MyClass()
public MyClass(MyClass other)
val = other.val;
El segundo constructor simplemente acepta un parámetro de su propio tipo (el que desea copiar) y crea un nuevo objeto asignado con el mismo valor
class Program
static void Main(string[] args)
MyClass objectA = new MyClass();
MyClass objectB = new MyClass(objectA);
objectA.val = 10;
objectB.val = 20;
Console.WriteLine("objectA.val = 0", objectA.val);
Console.WriteLine("objectB.val = 0", objectB.val);
Console.ReadKey();
producción:
objectA.val = 10
objectB.val = 20