C# LanguageICloneable


Sintaxis

  • objeto ICloneable.Clone () {return Clone (); } // Implementación privada del método de interfaz que utiliza nuestra función Clone () pública personalizada.
  • público Foo Clone () {devolver nuevo Foo (esto); } // El método de clonación público debe utilizar la lógica del constructor de copia.

Observaciones

El CLR requiere un object Clone() definición de método object Clone() que no es de tipo seguro. Es una práctica común anular este comportamiento y definir un método de tipo seguro que devuelva una copia de la clase contenedora.

Es decisión del autor decidir si la clonación significa solo una copia superficial o copia profunda. Para estructuras inmutables que contienen referencias, se recomienda hacer una copia profunda. Para las clases que son referencias en sí mismas, es probable que esté bien implementar una copia superficial.

NOTA: En C# un método de interfaz se puede implementar de forma privada con la sintaxis que se muestra arriba.

ICloneable Ejemplos relacionados