Ich möchte foo() löschen, wenn foo() nicht von irgendwoher aufgerufen wird.
Dies (CA1811) wird nicht für alle Arten von Methoden funktionieren, z. B. für statische öffentliche Methoden.
Ich möchte foo() löschen, wenn foo() nicht von irgendwoher aufgerufen wird.
Gendarm erkennt private Methoden, die keine vorgelagerten Aufrufer haben. Es ist plattformübergreifend verfügbar, und die neueste Version behandelt " AvoidUncalledPrivateCodeRule ".
FxCop erkennt öffentliche/geschützte Methoden, die keine vorgelagerten Aufrufer haben. FxCop erkennt jedoch nicht alle Methoden ohne vorgelagerte Aufrufer, da es für den Fall gedacht ist, dass Ihr Code Teil einer Bibliothek ist, so dass öffentliche Mitglieder ausgelassen werden. Sie können NDepend verwenden, um nach öffentlichen Mitgliedern ohne vorgelagerte Aufrufer zu suchen, was ich hier in dieser anderen StackOverflow-Antwort ausführlich beschreibe .
(edit: Informationen über Gendarme hinzugefügt, die genau das tun, was der Fragesteller wollte)
Dies (CA1811) wird nicht für alle Arten von Methoden funktionieren, z. B. für statische öffentliche Methoden.
@JRoppert: Ich denke, das liegt daran, dass es nicht in der Lage ist, bei der Anzahl der Durchläufe von FxCop zu erkennen, ob es wirklich nicht referenziert ist. Resharper stürzt bei mir ständig ab, so dass es nicht in Frage kommt, es zu benutzen. Trotzdem ein guter Punkt.
NDepend wird auch über potenziell ungenutzten Code berichten.
Beachten Sie, dass Resharper (und wahrscheinlich auch andere ähnliche Tools) unbenutzte Methoden nicht hervorheben, wenn die Methoden mit public
. Es gibt keine Möglichkeit, mit einem statischen Code-Analyse-Tool zu überprüfen, ob die Methoden Ihrer Assembly von anderen Assemblies außerhalb Ihrer Lösung verwendet werden. Der erste Schritt beim Aussortieren unbenutzter Methoden besteht also darin, ihre Sichtbarkeit auf private
o internal
.
Resharper tut dies, und zwar nicht nur mit Methoden. Sie tut es auch mit using-Anweisungen, Variablen usw.
Ja, die MZ-Tools Addin hat eine Funktion zur Überprüfung von totem Code.
CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.
0 Stimmen
PC-Lint und Splint finden nicht referenzierte Methoden und Variablen.