【发布时间】:2015-07-02 20:31:07
【问题描述】:
我正在使用 Visual Studio 2013。我正在修改其他人留下的一些可怕的代码,这些代码几乎完全使用全局变量,并试图清理它,以便我可以正确封装每个函数而不会对外部造成影响传入(或返回)它的内容。
有什么方法可以轻松地检查整个项目中定义的变量是否超出了它们的使用范围?
我知道我可以点击一个变量,SHIFT+F12 会为我找到该单个变量的用法,但我想在整个项目中找到所有此类用法,因为问题真的很糟糕......不仅仅是一两个全局变量,我说的是几十个。试图了解这个程序的流程和它的状态,足以让你喝得酩酊大醉!
【问题讨论】:
-
R# 可能会对您有所帮助。不确定是否有内置功能。 @MarkBrackett,OP 正在谈论不必是成员变量的成员变量,因为它们只在一种方法中使用。
-
我得研究一下 R#。
-
@MarkBrackett 如果类成员变量仅用于在类中的两个方法之间传递状态,并且足够私有,则可以将其重构为方法参数。这就是 OP 正在寻找的东西。无需反思; OP 不是在谈论运行时,而是在谈论编译时或设计时。
-
也许开始第二个解决方案,并在单个类中复制,然后你会在任何超出范围成员的地方得到红色的波浪线。
-
您可以编写一个小实用程序,使用 Roslyn 查找此反模式的所有实例。在代码中实现重构可能不值得,但编写一些东西只是为了找到仅在一种方法中引用的成员变量应该不难。
标签: c# global-variables code-analysis encapsulation local-variables