![]() |
1
9
使用受保护的方法MemberWiseClone(执行浅复制)或使用深度克隆技术在MyType上实现克隆方法。您可以让它实现一个ICloneable,然后编写几个扩展方法来克隆相应的集合。
必须执行此操作,因为在使用数组时创建新数组时,复制它将复制引用,而不是复制引用的对象。每种类型都负责复制自己。 |
![]() |
2
11
基于第一篇文章,他所需要的只是“数组的独立副本”。改变到
他还提到了一个“深度复制”,对于不是基元递归值类型聚合的可变类型,这是不同的。如果
|
![]() |
3
8
对于不耐烦的人:
|
![]() |
4
7
如果类型是可序列化的,则可以使用序列化技术获取数组的副本(包括项目的深度副本):
使用它:
|
![]() |
5
3
我想做同样的事情:为排序之类的事情按值复制一个数组,这样我以后可以用原始源数组重新初始化另一个临时数组。经过研究,我发现这不可能这么简单。所以,我做了一个变通方案。我将使用我自己的代码:
行星名称 是我的源数组。 暴风雨的名字 是我稍后将独立于planetname排序的数组。我已经测试过了,但这个代码没有排序 行星名称 当我排序时 暴风雨的名字 这就是我想要达到的目标。 |
![]() |
6
1
如果您只想创建一个引用了旧数组中对象的数组的副本(或者如果您有值类型对象的数组),最简单的解决方案是
如果您需要深度复制,您应该有一个复制您类型的单个对象的方法(例如
|
![]() |
7
0
我发现,如果您只需要一个简单的char数组拷贝,您可以使用char诱骗c按值进行拷贝:
似乎对我有用,但如果有人不同意,请告诉我:) |
![]() |
A B · C#Excel自动调整列避免长文本时出错 7 月前 |
![]() |
Megrez7 · C#ToArray转换合并为一行,导致数组元素更改 7 月前 |
![]() |
Aycon · 在工厂方法中释放部分创建的对象的正确方法是什么? 7 月前 |
|
Sei · Avalonia/WPF将路由器传递到控制模板 8 月前 |