');

C# LanguageICloneable

Sintassi

  • oggetto ICloneable.Clone () {return Clone (); } // Implementazione privata del metodo di interfaccia che utilizza la nostra funzione pubblica personalizzata Clone ().
  • pubblico Foo Clone () {return new Foo (this); } // Il metodo clone pubblico dovrebbe utilizzare la logica del costruttore di copie.

Osservazioni

Il CLR richiede un object Clone() definizione del metodo object Clone() che non sia sicuro da testo. È prassi comune sovrascrivere questo comportamento e definire un metodo sicuro per tipo che restituisce una copia della classe contenente.

Spetta all'autore decidere se la clonazione significa solo copia superficiale o copia profonda. Per strutture immutabili contenenti riferimenti si consiglia di fare una copia profonda. Poiché le classi sono riferimenti a se stessi, probabilmente è meglio implementare una copia superficiale.

NOTA: In C# un metodo di interfaccia può essere implementato privatamente con la sintassi mostrata sopra.

ICloneable Esempi correlati