Maison >développement back-end >C++ >Finaliser vs disposer dans C #: Quand et comment utiliser ces méthodes?
Finaliser et éliminer les méthodes en C #: Quand et comment utiliser ces méthodes?
Finaliser la méthode (ou destructrice) appelle automatiquement l'objet lors de la destruction de la disposition de l'objet (GC). Son objectif principal est de libérer des ressources non d'hébergement, telles que la poignée de fichiers ou la connexion réseau.
En revanche, la méthode de disposition fournit un mécanisme de contrôle pour libérer la garde et les ressources non d'hébergement. Lorsqu'un objet n'est plus nécessaire, il doit être affiché.
Implémentation finale
uniquement lorsque votre classe utilise des ressources non-CUSDODE, peut finaliser la méthode. Sinon, veuillez suivre le mode recommandé:
pour réaliser disposer
<code class="language-csharp">public sealed class MyManagedClass : IDisposable { public void Dispose() { // 释放托管资源 } }</code>
Si votre classe utilise des ressources non d'hébergement, veuillez utiliser le mode suivant:
La responsabilité du client
<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>Le client de ces catégories doit appeler ou utiliser la déclaration d'utilisation pour assurer la bonne élimination:
Oui, WebClient implémente iDisposable car il utilise des ressources non hostomaires. Pour déterminer si la classe utilise des ressources non d'hébergement, vérifiez ses documents ou utilisez des outils tels que ILSPY pour vérifier son implémentation.
<code class="language-csharp">using (MyUnManagedClass obj = new MyUnManagedClass()) { // 使用对象 }</code>
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!