c# - una - summary c sharp




¿Hay alguna herramienta para encontrar funciones sin referencias(código obsoleto muerto) en una aplicación C#? (5)

Bueno, si VS no hace esto de forma nativa, un método simple es hacer clic derecho en el método y seleccionar "buscar todas las referencias". Si solo hay 1 referencia (donde se declara), lo más probable es que no se use en ningún otro lado.

Quiero eliminar foo () si no se llama a foo () desde ningún lugar.


Sí, el complemento MZ-Tools tiene una función de revisión del código inactivo.


Tenga en cuenta que Resharper (y probablemente otras herramientas similares también) no resaltará los métodos no utilizados si los métodos están marcados como public . No hay forma de que una herramienta de análisis de código estático pueda verificar si los métodos de su ensamblaje son utilizados por otros ensambles fuera de su solución. Por lo tanto, el primer paso para eliminar los métodos no utilizados es reducir su visibilidad a private o internal .


Resharper hace esto, y no solo con métodos. También lo hace con el uso de declaraciones, variables, etcétera.


Gendarme detectará métodos privados sin llamadores en sentido ascendente. Está disponible en plataforma cruzada, y la última versión maneja " AvoidUncalledPrivateCodeRule ".

FxCop detectará métodos públicos / protegidos sin llamadas en sentido ascendente. Sin embargo, FxCop no detecta todos los métodos sin llamadas ascendentes, ya que está destinado a verificar en el caso de que su código sea parte de una Biblioteca, por lo que los miembros públicos quedan excluidos. Puede usar NDepend para hacer una búsqueda de miembros públicos sin llamantes en sentido ascendente, que detallo aquí en esta otra respuesta de .

(editar: información adicional sobre Gendarme que en realidad hace lo que preguntó el interlocutor)





code-analysis