Quels sont les avantages de maintenir une liste "propre" d'utilisation des directives dans C#?
je sais que VS2008 a la fonction supprimer et trier pour nettoyer en utilisant des directives, comme le fait Resharper. Outre le fait que votre code est "propre" et élimine le problème de référencement d'espaces de noms qui pourrait ne pas exister à l'avenir, quels sont les avantages de maintenir une liste "propre" de directives d'utilisation?
Moins de code? Des temps de compilation plus rapides?
8 réponses
pour moi, il s'agit essentiellement de moins de bruit (en plus de rendre Resharper heureux!).
je crois que toute amélioration dans le temps de compilation serait minime.
si vous avez toujours seulement les directives d'utilisation dont vous avez besoin, et que vous les avez toujours triées correctement, alors quand vous arrivez à distinguer deux versions du code, vous ne verrez jamais de changements non pertinents.
de plus, si vous avez un ensemble soigné de directives d'utilisation, Alors quiconque regarde le code pour commencer peut obtenir un rugueuse idée de ce qui va être utilisé juste en regardant les directives using.
il n'y a pas d'impact d'exécution. C'est purement de la compilation. Il a potentiellement un impact le suivant:
- moins de risques de collision dans L'espace de noms
- Moins de "bruit" dans le fichier de code
- Très explicite au sujet de laquelle les espaces de noms et les types possibles d'attendre dans le fichier
- utiliser le menu pour supprimer les non utilisées et trier signifie plus de cohérence avec l'utilisation des instructions parmi les devs. Moins de chance d'avoir des checkins débiles juste pour arranger ça.
- Moins de bruit.
- claire attente de quels types sont utilisés ("ma couche UI dépend de System.Net. Pourquoi?")
- Nettoyant références: si vous avez l'ensemble minimal de l'utilisation d'instructions, vous pouvez nettoyer vos références. Souvent, je vois les développeurs juste jeter des références dans leurs projets, mais ils ne les suppriment jamais quand ils ne sont plus nécessaires. Si vous n'avez rien qui a réellement besoin d'une référence (et une utilisation de la déclaration compte), il devient trivial pour nettoyer vos références. (Pourquoi voudriez-vous faire cela? Dans les grands systèmes qui ont été décomposés en composants, cela simplifiera vos dépendances de construction en éliminant les déps inutilisés.)
Pour moi, une liste claire de l'utilisation d'instructions au début peut donner une bonne compréhension des types d'attendre.
j'ai vu un gain décent dans le temps de compilation il y a quelques années quand J'ai installé pour la première fois ReSharper (sur une solution de 18 projets). Depuis lors, c'est juste à propos de la garder propre.
Je ne peux pas parler des avantages dans le temps de compilation et la performance, mais il y a une plus faible chance de collisions d'espaces de noms Si vous avez minimisé vos déclarations d'utilisation. Ceci est particulièrement important si vous utilisez plus d'une bibliothèque tierce.
il y a une différence de temps de compilation: lorsque vous supprimez une référence, mais que vous avez encore une directive d'utilisation dans votre code, vous obtenez une erreur de compilation. Ainsi, avoir une liste claire des directives d'utilisation rend un peu plus facile de supprimer les références inutilisées.
habituellement le compilateur supprime les références inutilisées, mais je ne sais pas si cela fonctionne quand une utilisation est dans le code.