9
votes

Est-il possible de modifier le code de gestionnaire d'événements généré automatiquement au sein de Visual Studio?

J'aimerais pouvoir contrôler le code par défaut généré pour l'événement lorsque j'utilise l'un des blocs générés automatiquement de Visual Studio. Le modèle actuel est le suivant:

private void HandlerName(object sender, HandlerEventArgs args) {
    throw new NotImplementedException();
}


6 commentaires

Franchement, j'aimerais que cela mettait automatiquement le privé sur.


D'accord, bien que ce ne soit pas aussi important pour moi que privé soit le modificateur d'accès par défaut pour les membres. J'aimerais particulièrement args au lieu de E en raison de la face que j'ai tendance à utiliser e dans les expressions Lambda beaucoup, en particulier les événements Lambda où (S, E) est souhaité, bien que j'ai récemment changé pour (s, a) .


Il y a une raison que le paramètre Arguments d'événement est toujours nommé E . C'est une convention standard dans le monde .Net, recommandée par tous les guides de style officiel et non officiel, et je vous conseille vivement de commencer à suivre. La modifier à args est assez non standard, ce qui nuit à la lisibilité pour absolument aucun avantage.


Ne pas entrer dans un débat, même si je ne pense pas que ce soit moins lisible ou confus. Personnellement, je pense que E est devenu une norme de proxy à partir de la génération automatique de VS. Il est intéressant d'intéresser que expéditeur n'est pas par défaut s qui est là où je vois personnellement l'incohérence, et non tous evenargs commencent par e , mais toutes les extrémités dans args .


@Brett - Il n'a pas "devenu" une norme par la génération automatique de VS. C'était toujours dans le Directives de conception que les deux arguments soient appelés expéditeur et e .


@Damien, merci pour la clarification, je rétracte maintenant mon raisonnement à renommer E à args , bien que je voudrais toujours remplacer le modèle pour commentaires et modificateur d'accès explicite.


3 Réponses :


0
votes

Vous dites que vous souhaitez modifier le code généré automatiquement lorsque vous créez un gestionnaire d'événements?

Ma réponse est non, mais je ne suis pas vraiment sûr de savoir pourquoi vous auriez besoin de.


1 commentaires

Mon raisonnement est illustré dans l'exemple fourni, bien que je souhaite prolonger cela encore en fournissant également les commentaires par défaut du gestionnaire. C'est une politique pour nous ici de commenter également les membres privés.



1
votes

Je pense que le E provient de la signature de délégué ( Délégué Void Handlereventhandler (expéditeur d'objet, Handleeeventargs e) ), vous ne pouvez donc pas changer sans changer le Signature du délégué ...


1 commentaires

Raisonnement très compréhensible Thomas, +1 pour cela. Je serais toujours très intéressé par un moyen d'obtenir VS de formater cela automatiquement, même en laissant le nom de E . Je sais que ce que je demande ne prend que quelques secondes pour remplacer manuellement, mais il reste encore quelques secondes :)



0
votes

Dans le cas, vous voulez toujours modifier quelque chose sur le code généré automatiquement pour le gestionnaire d'événements, j'utilise cette extension pour Visual Studio depuis quelques années.

Il est très utile de générer un nom de gestionnaire d'événements plus propre. Comme vous le verrez, au lieu de générer quelque chose comme TXTNAME_LOSTFOCUS, l'extension vous suggère une méthode avec nom comme celui-ci: OnnnamelostFocus.

Cela aide à se débarrasser du soulignement et des préfixes que nous ajoutons habituellement aux contrôles. L'extension a un écran de configuration pour ajouter tous les préfixes que vous souhaitez.

Mais tout ce que je dis n'est pas utile pour répondre à votre question. Voici l'endroit où il aide -> Dans le code que vous pouvez télécharger, vous pouvez voir comment le moteur fonctionne pour remplacer le nom de la méthode du gestionnaire d'événements et je suis totalement sûr que vous pouvez trouver une solution pour renommer tout argument de votre choix ( Si vous voulez toujours) et aussi, ajoutez un modificateur explicite.

Je vais essayer de trouver la solution et de vous faire connaître mes progrès.

mise à jour: Vous pouvez également utiliser Resharper qui sera automatiquement si vous souhaitez ajouter un modificateur explicite pour vous à l'aide du moteur de nettoyage.


0 commentaires