c# – 复制对象并使用重复,而不更改原始

前端之家收集整理的这篇文章主要介绍了c# – 复制对象并使用重复,而不更改原始前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
假设我有一个对象ItemVO,其中已经分配了一堆属性.
例如:
ItemVO originalItemVO = new ItemVO();
originalItemVO.ItemId = 1;
originalItemVO.ItemCategory = "ORIGINAL";

我想通过使用以下方式创建另一个副本:

duplicateItemVO = originalItemVO;

然后使用duplicateItemVO并更改其属性,不改变originalItemVO:

// This also change the originalItemVO.ItemCategory which I do not want.
duplicateItemVO.ItemCategory = "DUPLICATE"

如何才能实现这一点,而不用改变ClassVO的类?

谢谢

public class ItemVO     
{
    public ItemVO()
    {
        ItemId = "";
        ItemCategory = "";
    }

    public string ItemId { get; set; }
    public string ItemCategory { get; set; }
}

解决方法

您将需要构建一个新的类的实例,而不仅仅是分配变量:
duplicateItemVO = new ItemVO 
    { 
        ItemId = originalItemVO.ItemId,ItemCategory = originalItemVO.ItemCategory 
    };

当您处理引用类型(任何类)时,只需分配一个变量即可创建对原始对象的引用的副本.因此,在该对象内设置属性值也会更改原始对象.为了防止这种情况,您需要实际构造一个新的对象实例.

猜你在找的C#相关文章