Freezable.CloneCurrentValue Метод
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Создает редактируемую копию (глубокую копию) объекта Freezable с использованием его текущих значений.
public:
System::Windows::Freezable ^ CloneCurrentValue();
public System.Windows.Freezable CloneCurrentValue ();
member this.CloneCurrentValue : unit -> System.Windows.Freezable
Public Function CloneCurrentValue () As Freezable
Возвращаемое значение
Изменяемая копия текущего объекта. Свойство IsFrozen объекта-копии содержит значение false
, даже если свойство IsFrozen исходного объекта содержит значение true
.
Комментарии
Методы Clone создают CloneCurrentValue изменяемые клоны замороженных Freezable объектов (методы также клонируют Freezable объекты, которые не заморожены). Клон фактически является глубокой копией текущего объекта.
В следующей таблице перечислены различия между методами и CloneCurrentValue методамиClone.
Действие | Поведение метода клонирования | Поведение метода CloneCurrentValue |
---|---|---|
Копирование свойства зависимостей с выражением | Выражение копируется, но может перестать разрешаться. Дополнительные сведения см. в разделе Общие сведения об объектах класса Freezable. | Текущее значение выражения копируется, но не само выражение. |
Копирование анимированного свойства зависимостей | Копируется базовое (не анимированное) значение свойства. Анимации не копируются. | Копируется текущее анимированное значение свойства. Анимации не копируются. |
Обратите внимание, что свойства без набора не копируются. Если свойство unset имеет значение по умолчанию, которое является замороженным Freezable, это значение свойства остается замороженным в изменяемом клоне.
Перемещение освобождаемого между потоками
Этот метод может быть полезен для перемещения Freezable между потоками. Во-первых, сделайте неизменяемый Freezable с помощью метода Freeze . Теперь другой поток может получить доступ к Freezable локальному клону, к которому он может получить доступ.
Примечания для тех, кто наследует этот метод
Этот метод использует CloneCurrentValueCore(Freezable) метод для создания клона; Freezable реализующие, которые переопределяют CloneCurrentValueCore(Freezable) , должны убедиться, что копия не заморожена при создании.