コード例 #1
0
        // Переопределив данный метод, данный код будет срабатывать при вызове Clone()
        protected override void HandleCloned(CloneableBase baseClone)
        {
            // Выполняем операции из базового класса
            base.HandleCloned(baseClone);

            // Приводим клона к текущему типу
            CloneablePrototypeAdvanced clone = (CloneablePrototypeAdvanced)baseClone;

            // Дополнительная логика. Здесь, например, происходит копирование ссылочной
            // сущности
            clone.Dependency = new Dependency(this.Dependency.Text);
        }
コード例 #2
0
 // Дополнительный метод, предназначенный для расширения логики клонирования
 protected virtual void HandleCloned(CloneableBase clone)
 {
     // Возможно в абстрактном классе ничего делать не нужно, а вот в дочерних
     // классах пригодится для обработки, например, ссылочных типов.
     // Посколько класс виртуальный, то его реализация необязательна.
 }