Comme il est clair de la question, si je convertis une méthode normale en statique quels gains vais-je faire?Quels sont les gains de conversion de la méthode normale en statique?
Répondre
Outre les raisons sémantiques mentionnées ci-dessus, les méthodes statiques sont généralement plus rapides (en raison de ne pas avoir à créer un objet pour appeler la méthode). Ils sont soumis à des optimisations au moment de la compilation et, pour autant que je m'en souvienne, le CLR effectue également des optimisations spéciales à leur sujet.
Merci @Ian bon aperçu – TheVillageIdiot
Je choisis ceci comme réponse parce qu'il semble donner une idée de ma curiosité de performance! – TheVillageIdiot
Vous obtiendrez plus de clarté, car static
indique clairement que la méthode ne dépend pas de l'état d'un objet. Vous allez également faciliter la réutilisation car les méthodes static
peuvent être utilisées dans plus de contextes (c'est-à-dire lorsque vous n'avez pas d'instance de la classe).
En général, ce n'est pas vraiment une question de gain, c'est une question de sémantique: votre méthode dépend-elle de l'état de l'objet? Si oui, rendez-le non static
. Dans tous les autres cas, rendez-le static
.
+1 pour "c'est une question de sémantique" – TheVillageIdiot
Je dirais que vous devez également considérer la possibilité de découvrir. apprendre votre API via l'achèvement du code (IntelliSense) il est parfois plus facile de trouver des méthodes membres que des méthodes statiques – Hallgrim
pouvez-vous m'aider avec cette question s'il vous plaît: http: //stackoverflow.com/questions/35791513/what-are-the-irables -situation-real-vie-exemple-pour-créer-statique-méthodes-ex –
Fonction statique normalement utilisée pour les choses utilitaires comme ConverThisTypeToThatType()
, et vous pouvez les appeler sans avoir d'objet de sa classe.
Ex: MessageBox.Show("Something");
ici MessageBox
est une classe et Show
est une méthode statique en elle, donc nous ne avez pas besoin de créer un objet de MessageBox
appeler Show
.
Je suis dans un dilemme que choisir parmi les réponses à la fois Rudolph et Kemp sont perspicaces :( – TheVillageIdiot