Isi kandungan:
Definisi - Apakah maksud Buang?
Dalam konteks C #, buang adalah kaedah objek yang digunakan untuk melaksanakan kod yang diperlukan untuk pembersihan memori dan melepaskan dan menetapkan semula sumber yang tidak dikelola, seperti pengendalian fail dan sambungan pangkalan data. Lupuskan meningkatkan prestasi dan mengoptimumkan memori dengan melepaskan objek yang tidak terurus dan sumber yang terhad, seperti Genggaman Peranti Grafik (GDI) yang digunakan dalam aplikasi dengan ruang Windows yang terhad.
Kaedah Buang, yang disediakan oleh antara muka IDisposable, melaksanakan Lupuskan panggilan. Corak Buang direka bentuk untuk pembersihan yang tepat pada masanya dan boleh diramalkan, pencegahan kebocoran memori sementara dan pelupusan sumber.
Techopedia menerangkan Buang
Rangka kerja .NET memudahkan pengumpulan sampah (GC), mengurus memori objek dan sumber dan mengkaji semula rujukan memori objek tidak sah dengan menggunakan Finalis - kaedah non-deterministik. Kaedah Buang mengawal seumur hidup kes memori objek dan menyediakan kawalan pembersihan ingatan yang jelas, berbanding pembersihan memori tersirat Finalize. Lupuskan boleh digunakan walaupun terdapat contoh objek memori yang lain, sedangkan Finalis hanya boleh digunakan setelah objek memori terakhir dimusnahkan.
Melupuskan kaedah kaedah adalah seperti berikut:
- Digunakan untuk sumber yang tidak dikendalikan yang memerlukan pembebasan segera selepas digunakan.
- Jika Dispose tidak dipanggil, kaedah Finalis harus dilaksanakan.
- Selepas memanggil kaedah Buang, kaedah GC.SuppressFinalize mesti dipanggil untuk mengelakkan kaedah Finalis dan mengelakkan GC yang tidak perlu.
- Pengecualian harus ditangani dengan teliti jika kaedah Buang dilibatkan lebih dari satu kali. Jika sumber dibuang, sebarang kaedah contoh boleh membuang ObjectDisposedException.
- Objek dengan kaedah Dispose yang sebelum ini dipanggil tidak boleh digunakan semula.
- Dispose hanya disyorkan untuk pengurusan objek sumber asli dan objek Model Objek Komponen (COM) yang terdedah kepada Rangka Kerja .NET.
- Buang mungkin tidak digunakan secara serentak dari pelbagai thread, disebabkan oleh hasil yang tidak dapat diramalkan.
- Jenis nilai tidak boleh dibuat sebagai jenis pakai buang atau dengan ahli sumber yang tidak dikendalikan.
- Apabila menggunakan sumber yang tidak dikendalikan, ia dianggap sebagai amalan terbaik untuk menggunakan penyata Penggunaan kod sumber, yang secara automatik memanggil kaedah Buang objek selepas melengkapkan kod objek.