Automatische tiefe Kopie von struct

Ich habe eine Struktur,MyStruct, das hat ein privates Mitgliedprivate bool[] boolArray; und eine MethodeChangeBoolValue(int index, bool Value).

Ich habe ein klasse,MyClass, das hat ein feldpublic MyStruct bools { get; private set; }

Wenn ich ein neues MyStruct-Objekt aus einem vorhandenen erstelle und dann die Methode ChangeBoolValue () anwende, wird das bool-Array in beiden Objekten geändert, da der Verweis, auf den nicht verwiesen wurde, in das neue Objekt kopiert wurde. Z.B:

MyStruct A = new MyStruct();
MyStruct B = A;  //Copy of A made
B.ChangeBoolValue(0,true);
//Now A.BoolArr[0] == B.BoolArr[0] == true

Gibt es eine Möglichkeit, eine Kopie zu zwingen, eine tiefere Kopie zu implementieren, oder gibt es eine Möglichkeit, dies zu implementieren, die nicht dasselbe Problem hat?

Ich hatte MyStruct speziell zu einer Struktur gemacht, da es sich um einen Wertetyp handelte, und ich wollte nicht, dass Referenzen weitergegeben werden.

Antworten auf die Frage(5)

Ihre Antwort auf die Frage