2009-02-04 7 views
19

Pourquoi Visual Studio crée-t-il par défaut une méthode statique privée lors de la refactorisation du code et de la sélection de la méthode d'extraction?Pourquoi la commande de méthode d'extraction dans Visual Studio crée-t-elle des méthodes statiques?

Si je suis en train de refactoriser une classe non statique et que la méthode n'est visible que dans la classe, pourquoi est-elle statique?

L'appel d'une méthode statique privée dans une classe non statique par rapport à une méthode non statique dans une classe non statique présente-t-il des avantages en termes de performances? Est-il pour la lisibilité de simplement montrer que la méthode ne dépend pas de toutes les variables membres de la classe?

Répondre

27

Pourquoi Visual Studio crée-t-il par défaut une méthode statique privée lors de la refactorisation du code et de la sélection de la méthode d'extraction? Il le fait uniquement si votre méthode n'accède à aucune variable/méthode/propriété membre. C'est bien parce que cela fonctionne essentiellement sur le principe des moindres suppositions: puisque vous n'accédez pas à des données spécifiques à l'instance, vous pouvez aussi faire la méthode static. Y a-t-il des avantages en termes de performances en appelant une méthode statique privée dans une classe non statique par rapport à une méthode non statique dans une classe non statique?

Théoriquement, il pourrait y avoir mais j'en doute. Cependant, rendre la méthode statique indique clairement qu'elle n'accèdera ni ne modifiera les données d'instance, ce que je trouve utile.

1

La création d'une méthode statique peut être considérée comme une amélioration des performances car il n'y a pas de pointeur "this" à transmettre en tant que variable. J'utilise ReSharper et il recommande toujours de transformer les méthodes en statique lorsqu'elles ne se réfèrent pas à une variable de classe.

Questions connexes