Pour la question spécifique "Est-ce que pClass sera garbage collection": l'abonnement aux événements n'a aucun effet sur la collection de pClass (en tant qu'éditeur).
Pour GC en général (en particulier, la cible): cela dépend si MyFunction est statique ou basé sur une instance.
Un délégué (tel qu'un abonnement à un événement) à une méthode d'instance inclut une référence à l'instance. Alors oui, un abonnement à un événement empêchera GC. Cependant, dès que l'objet publiant l'événement (pClass ci-dessus) est éligible pour la collecte, cela cesse d'être un problème.
Notez que c'est unidirectionnel; c'est à dire si nous avons:
publisher.SomeEvent += target.SomeHandler;
alors «éditeur» gardera «cible» en vie, mais «cible» ne maintiendra pas «éditeur» en vie.
Donc non: si pClass doit quand même être collecté, il n'est pas nécessaire de désinscrire les écouteurs. Cependant, si pClass avait une longue durée de vie (plus longue que l'instance avec MyFunction), alors pClass pourrait garder cette instance vivante, il serait donc nécessaire de se désabonner si vous voulez que la cible soit collectée.
Cependant, pour cette raison, les événements statiques sont très dangereux lorsqu'ils sont utilisés avec des gestionnaires basés sur des instances.