Es gibt viele Werkzeuge, die wir verwenden können, um die Abhängigkeiten zwischen Modulen, Quellcodedateien, Klassen oder Funktionen usw. zu zeigen. Aber es gibt kein Werkzeug, um die Abhängigkeiten zwischen Variablen zu analysieren. Ein Abhängigkeitsgraphen von Variablen wäre hilfreich, um den Code zu verstehen und zu refaktorieren.Gibt es ein Tool, das die Abhängigkeiten zwischen Variablen in C# -Programmen analysieren kann?
Zum Beispiel, wenn die Variable b nur für die Berechnung des Wertes der Variable c wird wie folgt verwendet:
b = a;
....
c = b + 2;
Vielleicht könnten wir die Variable b entfernen, um den Code besser lesbar zu machen:
....
c = a + 2;
Diese Art der Wiederherstellung kann schwierig sein, wenn der Code sehr komplex ist oder viele schlechte Gerüche aufweist.
Gibt es ein Tool, das die Abhängigkeiten zwischen Variablen in C# oder anderen Programmiersprachen analysieren kann?
Mit „Variable“ meinen Sie konkret „lokalen Variable“, oder haben Sie lokale, formale Parameter, Array bedeuten Element, Feld und dereferenzierter Zeiger? Sind Sie besorgt über äußere Variablen von Lambda? Lambda-Parameter? Locals in lambdas? Hoisted Locals in Iterator-Blöcken? Analysieren die Beziehungen zwischen en arbiträre Variablen können ziemlich kompliziert sein, viel komplizierter als nur lokale, insbesondere wenn Sie das variable Aliasing über "ref" -Parameter berücksichtigen. –
Eric Lippert: je mehr Arten von "Variablen" analysiert werden können, desto einfacher wird die Refactory-Arbeit des Codes sein. Ich habe festgestellt, dass es in der Regel viele komplexe Abhängigkeiten gibt, wenn ich versuchte, Legacy-Code umzuwandeln. – askalee