C #Автоматическое глубокое копирование структуры

У меня есть структура MyStruct, в которой есть закрытый член private bool[] boolArray;и метод ChangeBoolValue(int index, bool Value).

У меня есть класс MyClass, в котором есть полеpublic MyStruct bools { get; private set; }

Когда я создаю новый объект MyStruct из существующего, а затем применяю метод ChangeBoolValue (), массив bool в обоих объектах изменяется, потому что в новый объект копируется ссылка, а не то, на что ссылались. Например:

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

Есть ли способ заставить копию реализовать более глубокую копию или есть способ реализовать это, у которого не будет такой же проблемы?

Я специально сделал MyStruct структурой, потому что это был тип значения, и я не хотел распространять ссылки.

12
задан 3Pi 5 July 2012 в 01:39
поделиться