C# Automatique de la copie en profondeur de struct

J'ai un struct, MyStruct, qui a un membre privé private bool[] boolArray; et une méthode ChangeBoolValue(int index, bool Value).

J'ai une classe, MyClass, qui a un champ public MyStruct bools { get; private set; }

Quand je crée un nouveau MyStruct objet à partir d'un existant, puis d'appliquer la méthode ChangeBoolValue(), le bool array dans les deux objets est changé, parce que la référence, et non ce qui a été mentionné, a été copié dans le nouvel objet. E. g:

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

Est-il un moyen de forcer une copie de mettre en œuvre une meilleure copie, ou est-il un moyen de mettre en œuvre ce qui n'aura pas le même problème?

J'avais faite spécialement MyStruct une struct parce que c'était le type de valeur, et je n'ai pas voulu multiplication des références.

Peut-être trop tard, et je ne connais pas les détails de votre conception ou des exigences, mais d'une manière générale, les structures mutables sont le mal. stackoverflow.com/questions/945664/...
Merci, la réponse n'y est décrit essentiellement le problème que j'ai 😛

OriginalL'auteur 3Pi | 2012-07-05