我是C#的新手,我想将一个属性的值复制到另一个属性.以下是我写的示例代码:
public class MyObject { private MyObject() { intArray = new int[3]{1,2,3} int1 = 1; SaveCopy(); } private void SaveCopy() { intArray_Copy = intArray; int1_Copy = int1; } public int[] intArray { get; set; } public int int1 { get; set; } public int[] intArray_Copy { get; set; } public int int1_Copy { get; set; } }
我写一个SaveCopy()
函数来保存的价值intArray
和int1
.我知道使用"="会引用原始属性,一旦原始属性的值发生变化,副本也会发生变化.如何制作与原始属性不同的副本?
一旦原始属性的值发生更改,副本也将更改
在谈论参考类型时就是这种情况.例如,int
作为值类型,将在分配给新变量时创建自身的副本.
例如,当处理除数组之外的各种引用类型时,需要实现"深度克隆"机制.有一个很好的问题描述了如何在SO上执行此操作:深度克隆对象
对于您int[]
,您可以使用Array.Copy
:
public void Copy() { Array.Copy(sourceArray, destArray, sourceArray.Length); }