加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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

发布时间:2020-12-15 04:01:03 所属栏目:百科 来源:网络整理
导读:假设我有一个对象ItemVO,其中已经分配了一堆属性. 例如: ItemVO originalItemVO = new ItemVO();originalItemVO.ItemId = 1;originalItemVO.ItemCategory = "ORIGINAL"; 我想通过使用以下方式创建另一个副本: duplicateItemVO = originalItemVO; 然后使用d
假设我有一个对象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 
    };

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读