,之后我添加了一个对象的集合,如果另一个副本(深层副本)总是被创造出来的?收集拷贝行为问题在C#
0
A
回答
2
不,如果它是一个类,大多数对象,只对同一对象的引用存储在收藏。
如果它是一个值类型,如int,双和结构的副本的情况下(不是一个深拷贝,如果该结构具有对类对象的引用,这又不会被复制)。
编辑:
要深度复制对象,您首先需要创建深度复制功能。
看看Create a Deep Copy in C#或How to make a deep copy in C# ?
然后,您可以在将项目添加到集合之前运行深度复制方法。
注意
不是很经常你真的需要一个真正的深层副本。通常最好重新考虑应用程序中的数据流。
1
如果你问什么用收集情况,那么这取决于:
通常情况下,一个集合将与一些“空”插槽来创建的,所以增加不会造成新的集合与新大小被创建。
但如果添加一个新的项目开始这种规模超越,一个新的集合将被创建和所有项目复制到它。
如果你问的是项目本身,再次它取决于:
如果是值类型(INT,双,例如结构),则该值将被复制,如果是一个引用类型,将使用对同一对象的引用的副本。
+0
@Downvoter - 请解释。 – Oded 2010-11-16 13:37:54
相关问题
- 1. 浅拷贝和深拷贝在C
- 2. C++数组拷贝,地址问题
- 3. 关于C++中浅拷贝的问题
- 4. boost shared_ptr拷贝问题
- 5. 的JavaScript - 浅拷贝问题
- 6. svn工作拷贝问题
- 7. C++类拷贝(指针拷贝)
- 8. 零拷贝接收函数
- 9. 浅拷贝或深拷贝?
- 10. 散列集的浅拷贝
- 11. 问题的ostringstream和拷贝构造
- 12. Jquery扩展深层拷贝问题
- 13. 查找类拷贝构造的问题
- 14. 转发拷贝构造函数问题
- 15. 简单的问题 - 浅拷贝(VB.Net)
- 16. 我有Samba文件拷贝的问题
- 17. 关于深拷贝示例的问题
- 18. Tuleap数据库拷贝问题
- 19. 可能线程,变量拷贝问题
- 20. 为什么懒的拷贝时我们有深拷贝和浅拷贝?
- 21. C#3收集问题
- 22. 在Java中的集合的浅拷贝
- 23. C++的std :: deque的拷贝构造函数问题
- 24. C++私人拷贝构造函数问题
- 25. 拷贝构造相关的问题(本机C++)
- 26. C++拷贝构造结构和指派问题
- 27. 拷贝
- 28. C++拷贝阵列阵列
- 29. C++ boost深层拷贝:: shared_ptr
- 30. C#对象的深拷贝
,那么如何才能有深刻的复制的集合? – user496949 2010-11-16 10:53:53