Freezable.CloneCore(Freezable) Metode
Definisi
Penting
Beberapa informasi terkait produk prarilis yang dapat diubah secara signifikan sebelum dirilis. Microsoft tidak memberikan jaminan, tersirat maupun tersurat, sehubungan dengan informasi yang diberikan di sini.
Menjadikan instans sebagai kloning (salinan mendalam) dari yang ditentukan Freezable menggunakan nilai properti dasar (non-animasi).
protected:
virtual void CloneCore(System::Windows::Freezable ^ sourceFreezable);
protected virtual void CloneCore (System.Windows.Freezable sourceFreezable);
abstract member CloneCore : System.Windows.Freezable -> unit
override this.CloneCore : System.Windows.Freezable -> unit
Protected Overridable Sub CloneCore (sourceFreezable As Freezable)
Parameter
- sourceFreezable
- Freezable
Objek yang akan dikloning.
Keterangan
Metode ini dipanggil dengan Clone metode dan tidak boleh dipanggil langsung dari kode Anda, kecuali saat memanggil implementasi dasar saat mengambil alih metode ini. Untuk membuat salinan objek saat ini yang dapat dimodifikasi, panggil Clone alih-alih memanggil metode ini secara langsung.
Catatan Bagi Inheritor
Jika Anda berasal dari Freezable, Anda mungkin perlu mengambil alih metode ini. Alasan untuk mengambil alih meliputi hal-hal berikut:
Kelas turunan Anda memiliki data yang tidak terekspos melalui properti dependensi.
Kelas turunan Anda harus melakukan pekerjaan inisialisasi tambahan yang tidak dapat dicapai hanya dengan mengesampingkan CreateInstanceCore(). Misalnya, ini berlaku jika kelas turunan ISupportInitializeAnda mengimplementasikan .
Kelas yang menyimpan semua data mereka di properti dependensi dan yang tidak perlu melakukan pekerjaan inisialisasi ekstra tidak perlu mengambil CloneCore(Freezable)alih .
Sangat penting bahwa semua implementasi memanggil implementasi dasar metode ini. Implementasi hanya boleh melakukan pekerjaan yang tidak dilakukan oleh implementasi default. Implementasi default membuat salinan mendalam dari semua properti yang dapat ditulis dan diatur secara lokal, termasuk ekspresi internal.
Jika objek memiliki properti dependensi terikat data, ekspresi disalin tetapi mungkin tidak lagi diselesaikan. Untuk informasi selengkapnya tentang mengkloning objek terikat data, lihat Gambaran Umum Objek yang Dapat Dibekukan. Jika objek memiliki properti dependensi animasi, nilai dasar (non-animasi) dari properti tersebut akan disalin. Animasi tidak disalin.
Perhatikan bahwa properti yang tidak diatur tidak disalin, juga bukan properti baca-saja. Jika properti seperti itu memiliki nilai default yang merupakan beku Freezable, nilai properti tersebut tetap dibekukan dalam klon yang dapat dimodifikasi.
Daftar berikut ini merangkum perilaku yang diharapkan untuk metode ini:
Salinan yang dihasilkan berisi salinan semua Freezable sub-objek.
Properti yang tidak disetel dan baca-saja tidak disalin.
Ekspresi disalin.
Tidak satu pun dari sub-objek ini dibekukan pada pembuatan.
Salinan itu sendiri tidak dibekukan.
Animasi tidak disalin.
Hanya nilai dasar properti yang disalin, bukan nilai animasi saat ini.