Visual Studio 2008 / C#: Как найти мертвый код в проекте?

Как я нахожу мертвый код в проекте C# Visual Studio 2008 года? Как неиспользованные классы, неиспользуемые переменные или неиспользованные ресурсы?

17
задан TalkingCode 7 January 2010 в 12:42
поделиться

5 ответов

Можно попробовать FxCop, который интегрирован в Visual Studio 2008 под названием Code Analysis. Достаточно щелкнуть правой кнопкой мыши на файле проекта и надпись 'Run Code Analysis'.

FxCop - это приложение, которое анализирует управляемые ассемблики кода (код, предназначенный для выполнения на общем языке .NET Framework) и сообщает информацию об ассемблерах, например, о возможном дизайне, локализации, производительности и улучшении безопасности.

Активные правила можно настроить в разделе Code Analysis свойств проекта. Например, некоторые правила, относящиеся к рассматриваемому случаю, присутствуют в Правилах использования и Правилах производительности:

  • CA1801: Обзор неиспользуемых параметров.
  • CA1811: Избегайте невызванного приватного кода.

А для большей гибкости вы также можете написать свои собственные пользовательские правила (Учебное пособие по написанию собственного правила анализа кода).

.
19
ответ дан 30 November 2019 в 13:21
поделиться

Установите JetBrains ReSharper, который выделит для вас неиспользованный код.

2
ответ дан 30 November 2019 в 13:21
поделиться

Shift + F12 в VS полезно для быстрой проверки :)

.
1
ответ дан 30 November 2019 в 13:21
поделиться

Очень полезным инструментом для этого является инструмент анализа зависимостей NDepend . В него можно загрузить проект Visual Studio, и он будет анализировать зависимости всех ваших сборок, типов и методов. Он даст вам массу информации о зависимостях, включая (но ни в коем случае не ограничиваясь!) методы/типы, которые ничем не используются.

Вы можете просматривать зависимости как графически, так и в виде списка, а также можете писать свои собственные пользовательские запросы зависимостей, такие как этот - простой CQL-запрос показывает потенциально неиспользуемые методы :

SELECT 
  METHODS         // Get me a list of methods
WHERE 
  MethodCa == 0   // Where their afferent coupling is zero, (afferent coupling being the number of other methods that call it)

Очень рекомендуемый инструмент.

2
ответ дан 30 November 2019 в 13:21
поделиться

Хотя я бы не рекомендовал это для большой базы кода, вы можете сделать определенное количество вручную.

Если вы щелкнете правой кнопкой мыши по методу или классу и затем выберете «Найти использование», вы получите вывод всех мест, где на них есть ссылки. Очевидно, он будет пустым, если он не используется.

Для постоянной очистки я бы установил ReSharper

0
ответ дан 30 November 2019 в 13:21
поделиться
Другие вопросы по тегам:

Похожие вопросы: