Memuktamadkan dan membuang kaedah dalam C#: Bilakah dan bagaimana menggunakan kaedah ini?
Memuktamadkan kaedah (atau destructor) secara automatik memanggil objek apabila memusnahkan susunan objek (GC). Tujuan utamanya adalah untuk melepaskan sumber bukan hosting, seperti pemegang fail atau sambungan rangkaian.
Sebaliknya, kaedah pelupusan menyediakan mekanisme kawalan untuk melepaskan jagaan dan sumber bukan hosting. Apabila objek tidak lagi diperlukan, ia harus dipaparkan.
Final Pelaksanaan
hanya apabila kelas anda menggunakan sumber bukan kesusasteraan, boleh memuktamadkan kaedah. Jika tidak, sila ikuti mod yang disyorkan:
untuk menyedari membuang
<code class="language-csharp">public sealed class MyManagedClass : IDisposable { public void Dispose() { // 释放托管资源 } }</code>
Jika kelas anda menggunakan sumber bukan hosting, sila gunakan mod berikut:
Tanggungjawab Pelanggan
<code class="language-csharp">public class MyUnManagedClass : IDisposable { public void Dispose() { Dispose(true); GC.SuppressFinalize(this); } protected virtual void Dispose(bool disposing) { if (disposing) { // 释放托管资源 } // 释放非托管资源 } }</code>
Ya, webclient melaksanakan idisposable kerana ia menggunakan sumber bukan hosting. Untuk menentukan sama ada kelas menggunakan sumber bukan hosting, periksa dokumennya atau gunakan alat seperti ILSPY untuk menyemak pelaksanaannya.
<code class="language-csharp">using (MyUnManagedClass obj = new MyUnManagedClass()) { // 使用对象 }</code>
Atas ialah kandungan terperinci Memuktamadkan vs melupuskan dalam C#: Bilakah dan bagaimana menggunakan kaedah ini?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!