Dans Visual Studio 2013, le nombre de références d'un Code spécial (méthode, propriété, champ, ...) est indiqué par Code Lens . Je veux obtenir des codes inutilisés (aucune référence) dans Visual Studio. Y a-t-il un moyen de les obtenir?
Je veux dire ci-dessous référence:
c#
visual-studio-2013
codelens
Nima Rostami
la source
la source
public
est inutilisé sans rechercher toute la base de code. Cependant, pour les composants internes et privés inutilisés, l'analyse du code vous avertira si vous avez activé l'avertissement approprié.Réponses:
Le moyen le meilleur et le plus simple d'atteindre ce que vous recherchez est probablement d'utiliser l'outil d'analyse de code intégré avec Visual Studio pour rechercher et vous diriger directement vers le code mort et les membres inutilisés.
À cet effet, j'ai créé un nouveau fichier de jeu de règles d'analyse de code (via Fichier-> Nouveau-> Fichier , en m'assurant que Général dans le volet de gauche était sélectionné et en faisant défiler vers le bas pour trouver le jeu de règles d'analyse de code , en lui donnant un nom de fichier, puis en recherchant et sélection des règles ci-dessous). Voir ci-dessous pour le contenu du fichier d'ensemble de règles que vous pouvez copier et coller dans un nouveau fichier avec l'extension .ruleset à utiliser.
Étant donné un fichier de jeu de règles, vous pouvez cliquer avec le bouton droit sur un fichier de projet dans le panneau Explorateur de solutions et sélectionner Propriétés . Dans les fenêtres des propriétés du projet, cliquez sur l' onglet Analyse du code dans le panneau de gauche, puis cliquez sur Ouvrir pour accéder à l'emplacement du fichier .ruleset. Si vous accédez aux propriétés d'un fichier de solution (par opposition à un fichier de projet), vous pouvez définir le fichier d'analyse de code pour chaque projet de la solution en un seul endroit (sous Paramètres d'analyse du code , et en utilisant le menu déroulant pour sélectionner REMARQUE: vous devez avoir préalablement parcouru le fichier de jeu de règles pour qu'il apparaisse dans la liste déroulante de cette fenêtre de propriétés).
Ensuite, vous exécutez simplement l'analyse de code sur les projets / solution (via Analyser-> Exécuter l'analyse de code sur la solution -OU- Alt + F11 ) et il reviendra sous forme d'avertissements, de toutes les méthodes non référencées ou des membres inutilisés qu'il trouve. Il trouvera même des méthodes référencées par une méthode, qui elle-même n'a aucune référence ailleurs.
Attention cependant, comme l'une des façons dont l'analyse de code pour le code mort peut vous induire en erreur, c'est si la référence est «cachée» en n'appelant jamais la méthode que via des délégués, et bien sûr, par réflexion.
Les règles pour détecter le code mort, en particulier, sont:
Vous trouverez ci-dessous le contenu du fichier .ruleset qui peut être obtenu en suivant les étapes ci-dessus, pour votre commodité. Vous pouvez simplement copier le XML ci-dessous, le coller dans notepad ++, enregistrer quelque part avec l'extension .ruleset , rechercher et utiliser comme expliqué ci-dessus:
la source
https://scottlilly.com/c-code-quality-improvement/remove-unused-classes-properties-and-functions/
«Malheureusement, [dans Visual Studio Analysis] vous ne pouvez détecter que les membres privés inutilisés. En effet, l'analyseur de code suppose que les membres publics peuvent être utilisés par d'autres programmes. Cela peut être vrai si vous les publiez en tant qu'API via un service Web ou la publication de votre code en tant que bibliothèque. ... ReSharper a des fonctions d'analyse de code similaires - avec l'avantage de vérifier les membres publics inutilisés. "
la source
Je parcourais chaque fichier, exécutais la commande Ctrl-MO pour tout réduire, puis faisais défiler à la recherche de la référence 0.
la source
Voici un moyen manuel d'accomplir cela que j'ai utilisé pour trouver les classes inutilisées qui sont marquées comme publiques.
Remarque: si vous ne suivez pas la règle d'une classe par fichier, cela nécessitera beaucoup plus de travail. En outre, pour tous les points de terminaison de service d'API, vous devrez vérifier qu'il n'est utilisé par aucun projet externe.
la source