本文介绍了浅复制或深层复制?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我是一个有点新的拷贝一个对象到另一个的这两种方法。我很困惑,无法辨认出深拷贝和浅拷贝..我已经通过很多关于这个理论的消失之间的主要区别,但我需要有适当的例子..
解释我的计划中,我复制一个对象到另一个。 - >

  A级
{
公众诠释A = 0;
公共无效显示()
{
Console.WriteLine(a的值为​​+一);
}
}
类节目
{
静态无效的主要(字串[] args)
{
一个OB1 =新的A() ;
ob1.a = 10;
ob1.display();
一个OB2 =新的A();
OB2 = OB1;
ob2.display();
Console.Read();
}
}

这是一个浅拷贝或深拷贝?任何人都可以请提供合理的答案。如果它是一个深拷贝,那么请对这一计划做对象复制同样的工作,和周围的其他方式提供浅拷贝代码..



如果该上面是一个浅拷贝,那么即使这应该是一个浅拷贝 - >

  A OB1 =新的A(); 
ob1.a = 10;
ob1.display();
一OB2 = OB1;
ob2.a = 444;
ob1.display();


解决方案

从链接的



Your example is creating a shallow copy.

A ob1 = new A();
ob1.a = 10;
A ob2 = new A();
ob2 = ob1;

ob1.a = 5; // <-- If you see value of ob2.a after this line, it will be 5.

Deep copy will be -

 A ob1 = new A();
 ob1.a = 10;
 A ob2 = new A();
 ob2.a = ob1.a;

 ob1.a = 5; // <-- If you see value of ob2.a after this line, it will be 10.

这篇关于浅复制或深层复制?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

08-18 13:49