C # copia automática automática de la estructura
Tengo una estructura,MyStruct
, que tiene un miembro privadoprivate bool[] boolArray;
y un métodoChangeBoolValue(int index, bool Value)
.
Tengo una clase,MyClass
, eso tiene un campopublic MyStruct bools { get; private set; }
Cuando creo un nuevo objeto MyStruct a partir de uno existente, y luego aplico el método ChangeBoolValue (), la matriz bool en ambos objetos cambia, porque la referencia, no a lo que se hizo referencia, se copió en el nuevo objeto. P.ej:
MyStruct A = new MyStruct();
MyStruct B = A; //Copy of A made
B.ChangeBoolValue(0,true);
//Now A.BoolArr[0] == B.BoolArr[0] == true
¿Hay una manera de forzar una copia para implementar una copia más profunda, o hay una manera de implementar esto que no tenga el mismo problema?
Específicamente hice de MyStruct una estructura porque era un tipo de valor, y no quería que las referencias se propagaran.