C# LanguageICloneable


Синтаксис

  • объект ICloneable.Clone () {return Clone (); } // Частная реализация метода интерфейса, который использует нашу пользовательскую функцию public Clone ().
  • public Foo Clone () {return new Foo (this); } // Метод public clone должен использовать логику конструктора копирования.

замечания

Для CLR требуется object Clone() определения метода object Clone() который не является безопасным по типу. Общепринятой практикой является переопределение этого поведения и определение безопасного метода типа, который возвращает копию содержащего класса.

Автор должен решить, означает ли клонирование только мелкую копию или глубокую копию. Для неизменяемых структур, содержащих ссылки, рекомендуется сделать глубокую копию. Для классов, являющихся самими ссылками, вероятно, хорошо реализовать мелкую копию.

ПРИМЕЧАНИЕ. В C# метод интерфейса может быть реализован в частном порядке с приведенным выше синтаксисом.

ICloneable Связанные примеры