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 }; 当您处理引用类型(任何类)时,只需分配一个变量即可创建对原始对象的引用的副本.因此,在该对象内设置属性值也会更改原始对象.为了防止这种情况,您需要实际构造一个新的对象实例. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |