c# - 代码指标 - 静态类和方法计数

标签 c# .net visual-studio-2013 code-metrics

我很想知道我们的 Visual Studio 2013 解决方案中有多少静态方法和静态类。我们在那里有很多项目...

Visual Studio 中是否有内置的东西可以做到这一点?我在 Code Metrics 窗口中看不到任何与此相关的内容。

我知道我可以使用 Ctrl+F 来搜索静态类(使用 RegEx 搜索静态类有点棘手)。这对于方法来说也很棘手。所以我得到了 350 个左右的静态类。

我对此唯一的其他想法是编写我自己的基于反射的检查。

最佳答案

使用 ctrl-f 并使用“查找:整个解决方案”,您可以使用此正则表达式搜索静态方法

^\s*(public\s+|internal\s+|private\s+)?static\s+([a-zA-Z0-9_\<\>\.\:]+)\s+([a-zA-Z0-9_\<\>]+)\s*\(.*\)

这对于静态类

^\s*(public\s+|internal\s+|private\s+)?static\s+class

为了更加确信没有误报,您可以将搜索限制为仅查看 *.cs 文件。在“查找结果”的底部,您会看到“匹配行:”及其后的计数。

我看到的限制:

  • 方法或类声明中的新行会中断搜索。这可以通过在上面的正则表达式中的每个标记后添加 (\r?\n)? 来解决。
  • block 注释或 #ifdef 0 将不会被检测到。如果不使用 Roslyn(例如)更彻底地解析它,或者像您在问题中所说的那样编译它并使用反射,我认为没有解决这个问题的简单方法。

关于c# - 代码指标 - 静态类和方法计数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35463823/

相关文章:

c# - Assert.AreEqual<T>(和相关的通用函数)不强制执行它们的参数类型

c# - 如何知道壁虎浏览器是否完成加载网页?

c# - 在 C# (wpf) 中捕获 Windows 键

c# - 如何转换日期时间?到日期时间

c# - 如何在新线程中强制执行

c++ - Visual Studio SFML 链接器错误

c# - 如何在设计模式下更改 visual studio 2013 中的表名?

c# - 按日期排序子节点 - Razor Umbraco

c# - 从finallys抛出异常时,不评估捕获 block

git - 将本地 Git 存储库从 IDE 迁移到 Visual Studio Online