Est-ce:
Button.Click -= new EventHandler(Button_Click);
le même que celui-ci:
Button.Click -= Button_Click;
Je pose la question car il me semble que la première supprime une nouvelle référence à une méthode, et la seconde supprime une méthode elle-même. Mais là encore, peut-être que la nouvelle partie EventHandler est implicite dans la surcharge + = ou - = au cas où le programmeur ne l'affecterait pas explicitement comme ça?
Dans le cas où il est différent que diriez-vous
Button.Click -= new EventHandler(Button_Click);
CONTRE
Button.Click -= Button_Click;
Merci.
C'est le même. Le second est simplement du sucre syntaxique pour le premier, et la comparaison d'égalité est surchargée de manière appropriée pour les types de délégués:
Deux délégués du même type avec les mêmes cibles, méthodes et listes d'invocation sont considérés comme égaux.
Le résultat est le même. Le compilateur déduit automatiquement le type de délégué et, par conséquent, le nouvel opérateur n'est pas obligé de le créer.