C#将一个对象的值赋给另一个对象

两个对象,object1,object2怎么样将object1中的值赋给object2,而且,赋值后,改变object1的值,object2的值不变速度,求大神!急用!!... 两个对象,object1,object2
怎么样将object1中的值赋给object2,
而且,赋值后,改变object1的值,object2的值不变
速度,求大神!急用!!!!!!!1
展开
 我来答
学生阿成
推荐于2018-03-02 · TA获得超过2073个赞
知道小有建树答主
回答量:1070
采纳率:0%
帮助的人:677万
展开全部
两个对象是NEW出来的吗?还是只New一个,另一个是object2=object1,就会存在这个问题!

你这两个对象都要单独new(实例化)才是相当于两个对象,如果不是,而是下面这样的话
object object1=new object1();
object object2=object1;
其实object2和object1指的是同一个对象。。所以,你怎么改变都会引起另一个改变。。不知你是不是这种情况!
草薙在
推荐于2016-01-28 · TA获得超过4795个赞
知道大有可为答主
回答量:6187
采纳率:50%
帮助的人:6311万
展开全部
一种就是做成struct,赋值的时候会自动clone一份

另一种就是你自己要负责写一个车Clone函数,新建一个对象然后把属性都复制过来,赋值的时候调用obj.Clone()就是一个新的对象了
追问
亲,这个克隆函数怎么写啊,如果是List,而且Person里有n多个属性,我还要一个一个的去敲这些属性么
追答
当然了,不然就要用反射
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
报告爱好者
2012-10-11 · TA获得超过902个赞
知道小有建树答主
回答量:561
采纳率:0%
帮助的人:158万
展开全部
这个就涉及到C#中的深拷贝与浅拷贝,给你一个示例吧:
///<summary>
/// 深拷贝接口
///</summary>
interface IDeepCopy
{
object DeepCopy();
}
///<summary>
/// 浅拷贝接口
///</summary>
interface IShallowCopy
{
object ShallowCopy();
}
///<summary>
/// 教室信息
///</summary>
class ClassRoom : IDeepCopy, IShallowCopy
{
publicint RoomID =1;
publicstring RoomName ="Room1";
publicoverridestring ToString()
{
return"RoomID="+ RoomID +"\tRoomName="+ RoomName;
}
publicobject DeepCopy()
{
ClassRoom r =new ClassRoom();
r.RoomID =this.RoomID;
r.RoomName =this.RoomName;
return r;
}
publicobject ShallowCopy()
{
//直接使用内置的浅拷贝方法返回
returnthis.MemberwiseClone();
}
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
zhizaozei
2012-10-11 · TA获得超过196个赞
知道小有建树答主
回答量:410
采纳率:0%
帮助的人:319万
展开全部
object是引用对象,如果直接赋值传的是引用地址,改变的话肯定是两个都改变.
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式