查找未使用的枚举成员

3
什么是确定枚举成员未被使用的最快方法?
7个回答

7

逐个注释枚举成员并查看代码是否能够编译。如果编译失败,则表示该成员被使用了。尽管这种方法只能捕捉到编译时使用的枚举,它们也可能在运行时使用。


如果枚举和代码库的规模相当大,手动完成这项工作需要相当长的时间。我希望能够使用Resharper/其他工具来一次性解决这个问题。 - JC.

3

我认为,在枚举的每个成员上使用“查找引用”是最快的方法。


1
我希望有比逐个处理更快的方法,但可能没有。 - JC.
我有一个本地化枚举,其中大约有30000个成员。查找引用可能需要半年的时间。 - Ehsan Mohammadi

3

如果您使用的是ReSharper,请单击枚举以检查,按下Alt+F7(如果您使用VS快捷方式,则为Shift+F12),它将给出您整个解决方案中使用该枚举的每个位置的列表。


如果我理解正确的话,你必须为每个枚举值都这样做,如果有很多的话可能会很麻烦。 - tigrou

3

为了保险起见,您可以使用ObsoleteAttribute标记您的成员。添加[Obsolete(true)]将在使用给定成员时导致构建失败。

这显然不仅适用于枚举,而且适用于.NET中的几乎任何内容。

如果您需要从解决方案中删除成员并且不担心其他解决方案中的使用情况,则Resharper是您的选择工具。


0

使用Ctrl-F在整个命名空间/项目中搜索枚举成员


0

成员的注释/取消注释。 如果编译器没有抛出错误,则未使用枚举成员。

更新:如评论中所提到的那样,这当然仅适用于包含在解决方案/活动构建配置中的项目。对于查找引用Ctrl + F方法也是同样。

否则,还可以选择进行文件搜索,例如使用grep。 但是,此选项仅允许进行基于字符串的搜索,并不解析任何类型。


假设所有引用的项目都在解决方案中。 - Codebrain

0

如果您正在使用VS2005/8,可以使用Ctrl-Shift-F在文件中搜索。这将给您一个文件列表,您可以双击以转到行。

如果您不使用VS,则可以使用WinGrep执行相同的操作(没有双击功能)


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接