Question :
Considérez le code suivant :
<code class="language-c#">MyClass pClass = new MyClass(); pClass.MyEvent += MyFunction; pClass = null;</code>
La pClass sera-t-elle collectée ? Ou va-t-il persister et continuer à déclencher des événements ? Devez-vous vous désinscrire des événements comme celui-ci :
<code class="language-c#">MyClass pClass = new MyClass(); pClass.MyEvent += MyFunction; pClass.MyEvent -= MyFunction; pClass = null;</code>
Réponse :
Collecte des déchets par éditeur d'événement :
L'abonnement à MyEvent n'affecte pas le garbage collection de pClass (éditeur).
Collecte des déchets de l'objet cible :
En général, le comportement du garbage collection dépend du fait que MyFunction soit une méthode d'instance ou une méthode statique :
Autres notes :
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!