Cross Referenz erstellen

  • VB.NET
  • .NET (FX) 4.5–4.8

Es gibt 7 Antworten in diesem Thema. Der letzte Beitrag () ist von petaod.

    Cross Referenz erstellen

    Hi,

    heute habe ich eine recht triviale Frage - auf die ich dennoch keine Antwort finde !

    Ich habe eine Form mit ca. 10.000 lines of code. Da habe ich einiges geändert. Dabei weiß ich, dass eine "Private Sub" nicht mehr genutzt wird. Nur habe ich blöderweise den NAMEN der Sub vergessen. Und jetzt finde ich das Dingens nicht mehr. Mist ! :)

    Das bringt mich auf die einfach Frage: wie kann ich denn herausfinden, welche "Sub" oder "Function" überhaupt nicht aufgerufen wird und somit "dead code" beinhaltet.

    Und die etwas weitergehende Frage: gibt es einfache Möglichkeiten eine "Cross-Referenz" zu erstellen, d.h. eine Liste, die mir anzeigt, wie oft welche "Sub" und "Function" in der Form aufgerufen wird.

    Vermutlich ist das ganz einfach zu machen ... und vielleicht sollte ich das längst wissen. Also bitte, nachsichtige Antworten ! :)

    LG
    Peter
    Für Punkt 1: Starte eine Codeanalyse.
    In VS2017CE:
    • Projekteigenschaften -> Codeanalyse -> alle Regeln (Grundlegende Microsoft-Regeln für Entwurfsrichtlinien reicht auch)
    • Menü Analysieren -> Codeanalyse ausführen -> für Projektmappe
    Dann kommst Du in Deinem Fall bei Fehler CA1811 raus.
    Bilder
    • DeadCode.png

      2,2 kB, 600×22, 110 mal angesehen
    Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von „VaporiZed“, mal wieder aus Grammatikgründen.

    Aufgrund spontaner Selbsteintrübung sind all meine Glaskugeln beim Hersteller. Lasst mich daher bitte nicht den Spekulatiusbackmodus wechseln.
    Danke erst mal für deinen Ratschlag !

    Offensichtlich wird die Sache mit dem "DeadParrot" nicht im meinem VS2015 angezeigt, weder für Prozeduren/Funktionen ohne Aufruf, noch für Forms ohne Instanzierung. Schade - wäre sonst eine Klasse Lösung.

    Mir scheint, das mit der XREF ist nicht ganz so einfach ...

    LG
    Peter
    @Peter329 Suche im Quelltext nach Private Sub, klappe die Prozeduren zusammen Ctrl+M+O, auf gehts mit Ctrl+M+P.
    Da siehst Du nur noch die Header-Zeilen der Prozeduren.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Danke erst mal !

    Jau, das mit dem Auf- und Zuklappen ist recht hilfreich, wenn sich einen Überblick über das Programm verschaffen will.

    Allerdings "Dead Code" finde ich damit so ohne weiteres nicht. Und auch eine Übersicht über die Aufrufhäufigkeit alle Prozeduren und Funktionen erhalte ich auch nicht.

    Mein Problem habe ich jetzt dadurch gelöst, dass ich einfach meine aktuelle Source mit einer gesicherten Source verglichen habe. Da ist mir dann wieder eingefallen, was ich geändert hatte. Aber das ist halt jetzt nur brauchbar für den einen speziellen Fall. Die allgemeine Fragestellung nach einer vernünftigen Cross Referenz ist damit nicht gelöst.

    LG
    Peter
    Hallo

    Meine Idee für deinen speziellen Fall wäre:

    Installiere ReSharper Trial. 30 Tage kannst du sie testen. Der zeigt dir solche und andere Fehler. Er hat diverse Analysetools und automatische OneClick Lösungen parat. Das schöne dabei, du siehst in der Scrollbar des Codeeditors sofort wo diese Sub ist welche nie verwendet wird.

    Grüße
    Sascha

    Ps: Für Studenten ist ReSharper glaube ich sogar kostenlos.
    If _work = worktype.hard Then Me.Drink(Coffee)
    Seht euch auch meine Tutorialreihe <WPF Lernen/> an oder abonniert meinen YouTube Kanal.

    ## Bitte markiere einen Thread als "Erledigt" wenn deine Frage beantwortet wurde. ##