如何在同一对象中将值从一个特性复制到另一个特性
本文关键字:一个 另一个 复制 对象 | 更新日期: 2023-09-27 18:25:25
我是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);
}