Cópia superficial ou cópia profunda?
Eu sou um pouco novo para esses dois métodos de copiar um objeto para o outro. Estou confuso e incapaz de identificar a grande diferença entre cópia profunda e cópia superficial. Eu tinha passado por muita teoria a respeito disso, mas preciso de explicação com exemplos apropriados. Eu tenho um programa no qual eu copio um objeto para outro. . ->
class A
{
public int a = 0;
public void display()
{
Console.WriteLine("The value of a is " + a);
}
}
class Program
{
static void Main(string[] args)
{
A ob1 = new A();
ob1.a = 10;
ob1.display();
A ob2 = new A();
ob2 = ob1;
ob2.display();
Console.Read();
}
}
Esta é uma cópia superficial ou uma cópia profunda? Alguém pode por favor fornecer a resposta com razão. Se for uma cópia profunda, forneça o código para cópia superficial para este programa, fazendo o mesmo trabalho de cópia de objeto, e vice-versa.
Se o acima é uma cópia superficial, então mesmo isso deve ser uma cópia superficial ->
A ob1 = new A();
ob1.a = 10;
ob1.display();
A ob2 = ob1;
ob2.a = 444;
ob1.display();