避免通过引用调用

本文关键字:引用 调用 | 更新日期: 2023-09-27 18:34:53

我有一个包含一些对象的搜索结果列表:

SearchResults = new ObservableCollection<ViewModel<Consignor>>();

我正在尝试将此列表中的第一个对象保存到新变量:

Consignor foundConsignor = consignors.First();

据我所知,这是一个引用电话。通过更改对象"foundConsignor",我的列表中的第一个对象也会更改。如何避免此行为?我可以调用 Consignor 的构造函数并向其传递对象或值,但我也想避免这种情况以保持低水平的复杂性。

避免通过引用调用

在你的Consignor类上实现 IClonable,然后你可以轻松地做一些类似 consignors.First().Clone() 的事情。

如果你的类(Consignor(只包含内部类型(intcharstring等(,MemberwiseClone((可能就足够了。但是,如果它包含非内部类型或引用类型,并且您想要执行成员的深层复制,则需要实现IClonable