如何在同一对象中将值从一个特性复制到另一个特性

本文关键字:一个 另一个 复制 对象 | 更新日期: 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()函数来保存intArrayint1的值。我知道使用"="会引用原始属性,一旦原始属性的值发生更改,副本也会发生更改。如何制作与原始属性不同的副本?

如何在同一对象中将值从一个特性复制到另一个特性

一旦原始属性的值发生更改,副本也将更改

当谈到引用类型时就是这种情况。例如,int值类型,它将在分配给新变量时创建自己的副本。

例如,在处理数组以外的各种引用类型时,需要实现"深度克隆"机制。有一个很大的问题描述了如何在SO上做到这一点:深度克隆对象

对于您的int[],您可以使用Array.Copy:

public void Copy()
{
    Array.Copy(sourceArray, destArray, sourceArray.Length);
}