当前位置:  开发笔记 > 编程语言 > 正文

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

如何解决《如何在同一个对象中将值从一个属性复制到另一个属性?》经验,为你挑选了1个好方法。

我是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.我知道使用"="会引用原始属性,一旦原始属性的值发生变化,副本也会发生变化.如何制作与原始属性不同的副本?



1> Yuval Itzcha..:

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

在谈论参考类型时就是这种情况.例如,int作为值类型,将在分配给新变量时创建自身的副本.

例如,当处理除数组之外的各种引用类型时,需要实现"深度克隆"机制.有一个很好的问题描述了如何在SO上执行此操作:深度克隆对象

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

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

推荐阅读
携手相约幸福
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有