{ public void Run() { ClienteBasic cb = new ClienteBasic(); cb.nome = "João"; cb.idade = 35; cb.endereco.bairro = "Cantinho do céu"; cb.endereco.cidade = "Viçosa"; cb.endereco.logradouro = "Rua A, numero 201"; ClienteBasic clone = (ClienteBasic)cb.ShallowCopy(); ClienteBasic cloneDeepcopy = (ClienteBasic)cb.DeepCopy(); cloneDeepcopy.nome = "Andrea"; cloneDeepcopy.endereco.logradouro = "Rua C, numero 102"; Console.WriteLine("Cliente: {0}. Idade: {1}. Endereço: {2},{3}-{4}.", cb.nome, cb.idade, cb.endereco.logradouro, cb.endereco.bairro, cb.endereco.cidade); Console.WriteLine("Cliente: {0}. Idade: {1}. Endereço: {2},{3}-{4}.", cloneDeepcopy.nome, cloneDeepcopy.idade, cloneDeepcopy.endereco.logradouro, cloneDeepcopy.endereco.bairro, cloneDeepcopy.endereco.cidade); clone.nome = "Pedro"; clone.endereco.logradouro = "Rua B, numero 340"; Console.WriteLine("Cliente: {0}. Idade: {1}. Endereço: {2},{3}-{4}.", cb.nome, cb.idade, cb.endereco.logradouro, cb.endereco.bairro, cb.endereco.cidade); Console.WriteLine("Cliente: {0}. Idade: {1}. Endereço: {2},{3}-{4}.", clone.nome, clone.idade, clone.endereco.logradouro, clone.endereco.bairro, clone.endereco.cidade); }
public ICliente DeepCopy() { ClienteBasic deepcopy = (ClienteBasic)ShallowCopy(); deepcopy.endereco = new EnderecoCliente(); deepcopy.endereco.bairro = this.endereco.bairro; deepcopy.endereco.logradouro = this.endereco.logradouro; deepcopy.endereco.cidade = this.endereco.cidade; return(deepcopy); }