C # cópia profunda automática de struct
Eu tenho uma estruturaMyStruct
, que tem um membro privadoprivate bool[] boolArray;
e um métodoChangeBoolValue(int index, bool Value)
.
Eu tenho uma aulaMyClass
, que tem um campopublic MyStruct bools { get; private set; }
Quando eu crio um novo objeto MyStruct de um objeto existente e, em seguida, aplico o método ChangeBoolValue (), o array bool em ambos os objetos é alterado, porque a referência, não o que foi referido, foi copiada para o novo objeto. Por exemplo:
MyStruct A = new MyStruct();
MyStruct B = A; //Copy of A made
B.ChangeBoolValue(0,true);
//Now A.BoolArr[0] == B.BoolArr[0] == true
Existe uma maneira de forçar uma cópia a implementar uma cópia mais profunda, ou existe uma maneira de implementar isso que não terá o mesmo problema?
Eu especificamente fiz MyStruct uma estrutura porque era tipo de valor, e eu não queria que as referências fossem propagadas.