Język

Freezable.Clone Metoda

Definicja

Tworzy modyfikowalny klon Freezableobiektu , tworząc głębokie kopie wartości obiektu. Podczas kopiowania właściwości zależności obiektu ta metoda kopiuje wyrażenia (które mogą nie być już rozpoznawane), ale nie animacje ani ich bieżące wartości.

public:
 System::Windows::Freezable ^ Clone();
public System.Windows.Freezable Clone();
member this.Clone : unit -> System.Windows.Freezable
Public Function Clone () As Freezable

Zwraca

Modyfikowalny klon bieżącego obiektu. Właściwość sklonowanego obiektu IsFrozen jest false nawet wtedy, gdy właściwość źródła IsFrozen to true.

Uwagi

Metody Clone i CloneCurrentValue tworzą modyfikowalne klony zamrożonych Freezable obiektów (metody klonują Freezable również obiekty, które nie są zamrożone). Klon jest w rzeczywistości głęboką kopią bieżącego obiektu.

W poniższej tabeli przedstawiono podsumowanie różnic między metodami Clone i CloneCurrentValue .

Action Zachowanie metody klonowania Zachowanie metody CloneCurrentValue
Kopiowanie właściwości zależności z wyrażeniem Wyrażenie jest kopiowane, ale może już nie zostać rozwiązane. Aby uzyskać więcej informacji, zobacz Przegląd obiektów z możliwością zamrażania. Bieżąca wartość wyrażenia jest kopiowana, ale nie sama wyrażenie.
Kopiowanie animowanej właściwości zależności Wartość podstawowa właściwości (nie animowana) jest kopiowana. Animacje nie są kopiowane. Bieżąca animowana wartość właściwości jest kopiowana. Animacje nie są kopiowane.

Pamiętaj, że nieskonfigurowane właściwości nie są kopiowane. Jeśli właściwość nieskonfigurowana ma wartość domyślną, która jest zamrożona Freezable, wartość właściwości pozostaje zamrożona w klonie modyfikowalnym w przeciwnym razie.

Przenoszenie mroźnego między wątkami

Ta metoda może być przydatna Freezable do przenoszenia między wątkami. Najpierw utwórz Freezable niezmodyfikowalny element, wywołując jego Freeze metodę. Teraz inny wątek może uzyskać dostęp do Freezable elementu i utworzyć lokalny Clone dostęp do niego.

Notatki dotyczące dziedziczenia

Ta metoda używa CloneCore(Freezable) metody do utworzenia klonu. Aby zmodyfikować zachowanie tej metody w klasie pochodnej, zastąp metodę CloneCore(Freezable) .

Dotyczy

Zobacz też