Este artigo é um artigo espelhado de tradução automática, por favor clique aqui para ir para o artigo original.

Vista: 18920|Resposta: 0

[Fonte] Clone da replicação superficial de objetos em C#

[Copiar link]
Publicado em 01/07/2016 10:52:47 | | | |


Clone é dividido em cópias superficiais e profundas

A diferença entre os dois: quando há um membro do tipo referência, a cópia superficial copia a referência do membro, e a cópia profunda copia o objeto membro.

Como implementar a função de cópia de objetos:

== Herdar a interface ICloneable implementa o método Clone

== ICloneable.Clone em si não distingue entre Deep ou Shallow, você pode chamar MemberwiseClone no Clone para implementar um ShallowClone, ou pode implementar um DeepClone você mesmo. No entanto, de acordo com a recomendação da Microsoft, ao implementar ICloneable, está pronto para implementar um DeepClone.
== ICloneable.Clone retorna o tipo de objeto
== O princípio de replicação do MemberwiseClone é que o tipo de valor é copiado bit a bit, e o tipo de referência copia a referência do objeto. Uma coisa a notar aqui é o tipo String, embora seja um tipo de referência, aqui é o mesmo que o tipo de valor, e é tratado como um tipo de valor no Clone.









Anterior:um objeto diferente com o mesmo valor identificador já estava associado a...
Próximo:o mvc recupera os dados XML JSON para a postagem
Disclaimer:
Todo software, material de programação ou artigos publicados pela Code Farmer Network são apenas para fins de aprendizado e pesquisa; O conteúdo acima não deve ser usado para fins comerciais ou ilegais, caso contrário, os usuários terão todas as consequências. As informações deste site vêm da Internet, e disputas de direitos autorais não têm nada a ver com este site. Você deve deletar completamente o conteúdo acima do seu computador em até 24 horas após o download. Se você gosta do programa, por favor, apoie um software genuíno, compre o registro e obtenha serviços genuínos melhores. Se houver qualquer infração, por favor, entre em contato conosco por e-mail.

Mail To:help@itsvse.com