Udostępnij za pośrednictwem


Freezable.Clone Metoda

Definicja

Tworzy modyfikowalny klon obiektu Freezable, 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

Freezable

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 również klonują Freezable 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 .

Akcja 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 Omówienie 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 (nieimowana) 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, ta wartość właściwości pozostaje zamrożona Freezablew klonie modyfikowalnym w przeciwnym razie.

Przenoszenie z możliwością zamrożenia między wątkami

Ta metoda może być przydatna Freezable do przenoszenia między wątkami. Najpierw należy uczynić Freezable element niemodifikowalnym przez wywołanie metody Freeze . Teraz inny wątek może uzyskać dostęp do elementu Freezable i utworzyć lokalny Clone dostęp do niego.

Uwagi 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ż