我們可以使用很多工具來顯示模塊,源代碼文件,類或函數等之間的依賴關係。但似乎沒有用於分析變量之間依賴關係的工具。給定變量的依賴關係圖有助於理解和重構代碼。是否有任何工具可以分析c#程序中變量之間的依賴關係?
例如,如果變量b僅用於計算變量c的值如下:
b = a;
....
c = b + 2;
或許我們可以除去變量b以使代碼的可讀性:
....
c = a + 2;
如果代碼非常複雜或者有許多不好的氣味,這種類型的代理可能很難。
是否有任何工具可以分析c#或其他編程語言中變量之間的依賴關係?
通過「變量」你的意思是明確「局部變量」,或者你的意思是本地的,正式的參數,數組元素,字段和解除引用的指針?你是否擔心lambda的外部變量?Lambda參數?lambdas中的本地?迭代器塊中的已提取的本地?分析關係任意變量可能相當複雜,比僅僅局部變量複雜得多,特別是當你通過「ref」參數考慮變量鋸齒時。 – 2010-02-07 04:44:11
Eric Lippert:可以分析越多類型的「變量」,代碼的重構工作越容易。當我嘗試重構遺留代碼時,我發現通常有很多複雜的依賴關係。 – askalee 2010-02-07 15:13:57