永发信息网

c# 如何复制一个对象,改变原始对象不会改变之前复制的对象呢?

答案:3  悬赏:80  手机版
解决时间 2021-03-08 15:29
比如有一个类Man(其中一个字段是name)
List manList=new List();
然后产生很多个Man实例,放在manList中
然后我建了个Man[] copyMen = new Man[manList.Count];
manList.CopyTo(copyMen,0);(把manList的元素复制给copyMen数组)
最后我对manList中的实例作的字段值作一些改变,比如把name改了

结果是manList和copyMen中都改变了,达不到备份的目的,怎么做才能让copyMen中的对象不随manList的改变而改变呢??
最佳答案
我说的 可能不对,但是没得到验证, 你的 MAN[ ] 该组 对 LIST<>() 该类泛型 ,应该不是 具备同样的存储多个结构,请查看 相关CSDN api关于数据类型与结构 ,另外完全简单的遍历下 你的 泛型组 存在一个 OBJECT 中即可 ,想要时随时取, 不一定要获取你的 MAN【】 这个东西 ,语句结构 其实都是你在设计,没必要 去抠,你的领导更不会太在意你一个结构代码怎么去写,他要求的更多是 稳定和高效。
全部回答
那就不要用自带的CopyTo,而自己实现个,每个元素都重新new,并把name重新赋值。
举个例子在 比如用datagridview拖拽 datagridview1_dragenter事件中 if (e.data.getdatapresent(typeof(int))) 这里选的是int 当然也可以是 string 或其他 { e.effect = dragdropeffects.copy; } 然后 mousedown事件中 if (e.button == mousebuttons.left) { datagridview dg = new datagridview(); dg = sender as datagridview; datagridview1.dodragdrop(int.parse(dg.rows[e.rowindex].cells["slotnr"].value.tostring()), dragdropeffects.copy); } 再鼠标按下时复制! 最后在dragdrop事件中可取得复制的值 if (e.data.getdatapresent(typeof(int))) { slotnr= (int)e.data.getdata(typeof(int)); } 然后这里仅仅是取得值如果要把它显示出来还需要 lable1.text=slotnr.tostring();
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
日剧BOSS第一季第二季谁有高清的,给我一份好
哈尔滨 或大庆哪里的滑雪场有大号的滑雪鞋 48
中国移动(铁通指定专营店)我想知道这个在什么
VR反射材质为什么总反射VR灯光3DMAXVR的镜面
成都火车东站到桂林车几点有
理科生可以报的与影视后期等相关专业有哪些?
正国银信商务顾问公司怎么去啊,有知道地址的
【英语翻译如何握笔也和近视有关】
逸术家家居彩妆膜地址有知道的么?有点事想过
大三了,还能否把户口迁移到学校?
宝骏730跑偏能过年检吗
湖州金强涂料厂这个地址在什么地方,我要处理
用proteus仿真实现直流无刷电机调速系统设计
皇宫里的池塘叫什么名字
仿写句子,实例:母爱是儿女离家时亲切的叮咛
推荐资讯
克拉玛依展览(博物)馆我想知道这个在什么地方
育红小区东区西门地址有知道的么?有点事想过
锂电池和镍氢电池的区别有哪些
冀州是哪个县?属于哪个地区
刘记重庆鸡公煲(延河路店)我想知道这个在什么
韩氏馍馍怎么去啊,有知道地址的么
比亚迪秦酷黑骑士版是什么意思
为什么都说一战更残酷
湛河区平顶山帅哥土豆粉哪位知道具体地址啊
有个单机游戏,原来是在7k7k上玩的,好几年了
2013年4月份,一则严重诋毁雷锋形象的信息被
杭州新通靠谱吗
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?