避免通过引用调用
本文关键字:引用 调用 | 更新日期: 2023-09-27 18:34:53
我有一个包含一些对象的搜索结果列表:
SearchResults = new ObservableCollection<ViewModel<Consignor>>();
我正在尝试将此列表中的第一个对象保存到新变量:
Consignor foundConsignor = consignors.First();
据我所知,这是一个引用电话。通过更改对象"foundConsignor",我的列表中的第一个对象也会更改。如何避免此行为?我可以调用 Consignor 的构造函数并向其传递对象或值,但我也想避免这种情况以保持低水平的复杂性。
在你的Consignor
类上实现 IClonable,然后你可以轻松地做一些类似 consignors.First().Clone()
的事情。
如果你的类(Consignor
(只包含内部类型(int
、char
、string
等(,MemberwiseClone((可能就足够了。但是,如果它包含非内部类型或引用类型,并且您想要执行成员的深层复制,则需要实现IClonable
。