什么是浅拷贝以及它如何不同于 C# 中的深拷贝?
浅拷贝 −
对象的浅拷贝复制“主”对象,但不复制内部对象。
“内部对象”在原始对象及其副本之间共享。
浅拷贝的问题在于这两个对象不独立。如果您修改其中一个对象,则更改将反映在另一个对象中。
深拷贝 −
深拷贝是对象的完全独立拷贝。如果我们复制我们的对象,我们将复制整个对象结构。
如果您修改其中一个对象,则更改不会反映在另一个对象中。
示例
class Program{
static void Main(string[] args){
//Shallow Copy
ShallowCopy obj = new ShallowCopy();
obj.a = 10;
ShallowCopy obj1 = new ShallowCopy();
obj1 = obj;
Console.WriteLine("{0} {1}", obj1.a, obj.a); // 10,10
obj1.a = 5;
Console.WriteLine("{0} {1}", obj1.a, obj.a); //5,5
//Deep Copy
DeepCopy d = new DeepCopy();
d.a = 10;
DeepCopy d1 = new DeepCopy();
d1.a = d.a;
Console.WriteLine("{0} {1}", d1.a, d.a); // 10,10
d1.a = 5;
Console.WriteLine("{0} {1}", d1.a, d.a); //5,10
Console.ReadLine();
}
}
class ShallowCopy{
public int a = 10;
}
class DeepCopy{
public int a = 10;
}输出
10 10 5 5 10 10 5 10
广告
数据结构
网络
关系型数据库管理系统
操作系统
Java
iOS
HTML
CSS
Android
Python
C 编程
C++
C#
MongoDB
MySQL
Javascript
PHP