-3
votes

Quand ne pas utiliser de mot clé statique en C #?

Qu'est-ce qui en fait une mauvaise pratique d'utiliser des mots-clés statiques lors de la définition d'une méthode en C #? Je sais que avec statique nous pouvons accéder directement à la fonction de la classe sans créer une instance de la classe. Mais quand nous ne devrions pas utiliser static?


2 commentaires

Si la méthode n'a pas besoin d'accéder à des membres instance , vous devez le définir comme statique . Il pourrait toujours être déclaré comme une méthode privée .


Mais lorsque nous ne devrions pas utiliser static? Lorsque vous souhaitez pouvoir vous moquer de le module pour le test de l'unité est un exemple. SoftwareEngineering.stackexchange.com/questions/5757/...


3 Réponses :


0
votes

Il existe une explication complète pour l'utilisation de la propriété "statique" ici par Microsoft.

Dans l'expérience d'un cadre Web (.NET Noyau pour cela) Par exemple, nous utilisons une déclaration statique pour les valeurs primitives qui ne nécessiteront aucun changement.


0 commentaires

0
votes

Une méthode qui n'accède à aucune instance ne doit pas être marquée comme statique : https://docs.microsoft.com/en-us/visualstudio/code-quality/ca1822-mark-Members- AS-static? View = vs-2017 Il pourrait toujours être déclaré comme une méthode de privée en fonction de l'utilisation.

Si la méthode accède à toutes les données d'instance, il ne peut pas statique. Le compilateur applique ceci.

Des exemples courants de méthodes statiques sont par exemple string.format et int32.parse . Il n'a aucun sens d'allouer une chaîne ou un int avant d'appeler ces méthodes.


0 commentaires

0
votes

Vous créez une méthode statique lorsque vous n'avez pas besoin de la méthode pour accéder à l'un des éléments non statiques de votre classe. Par exemple, prenez en compte denttime.parse méthode. Vous pouvez créer une instance de DateTime comme d'habitude, mais si vous avez besoin d'analyser une date spécifique, vous pouvez appeler denttime.parse pour renvoyer une DateTime valide sans créer un DateTime instance en soi. Cette méthode n'accumule aucun élément spécifique de la classe DateTime, il est déclaré comme statique

Plus d'info:

https://www.codeproject.com / Questions / 1208992 / Quand on utilise-user-static-méthodes-Csharp

https://hackernoon.com/c-static -vs-instance-Classes-and-Méthodes - 50FE8987B231


0 commentaires