У меня есть структура 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 структурой, потому что это был тип значения, и я не хотел распространять ссылки.