C#中地址引用的问题

derny 2004-11-22 09:40:36

我用ArrayList a , b
当用b=a的时候
这样b就引用了a的地址
b改变的时候a也跟着改变了。
要怎么样只得到a的值呢?也就是b改变的时候a不变
如果用循环赋值的话又太慢了
因为过程中循环套着循环

谢谢
...全文
141 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
MyNameEPC 2004-12-09
  • 打赏
  • 举报
回复
引用了同一个对象不可能保持不变,只有进行深拷贝。
ffb 2004-12-09
  • 打赏
  • 举报
回复
用memcpy
速马 2004-11-22
  • 打赏
  • 举报
回复
或者,如果带有ISerializable接口或者[Serializable]
可以先序列化到MemoryStream,在反序列化为另外一个对象,这样可以100%消除冲突
缺点是更慢
速马 2004-11-22
  • 打赏
  • 举报
回复
同楼上
就算复制一遍也只是浅拷贝
除非每个对象还支持ICloneable接口
GaoFX 2004-11-22
  • 打赏
  • 举报
回复
需要把A中的数据Clone一份吧。但是如果是ArrayList中引用的也是对象(引用类型)的话,Clone也不起做用,修改a中的某个元素b中也改变了。因为复制的也是引用。
derny 2004-11-22
  • 打赏
  • 举报
回复
re

110,535

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧