Tag: default copy constructor

C#自动深度复制struct

我有一个结构, MyStruct ,有私人成员private bool[] boolArray; 和方法ChangeBoolValue(int index, bool Value) 。 我有一个类, MyClass ,有一个字段public MyStruct bools { get; private set; } public MyStruct bools { get; private set; } 当我从现有的MyStruct对象创建一个新的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设为结构,因为它是值类型,我不希望引用传播。