2009-08-25 9 views

Répondre

1

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.

+0

Merci @Ian bon aperçu – TheVillageIdiot

+0

Je choisis ceci comme réponse parce qu'il semble donner une idée de ma curiosité de performance! – TheVillageIdiot

13

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.

+0

+1 pour "c'est une question de sémantique" – TheVillageIdiot

+0

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

+0

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 –

0

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.