3

有谁知道我可以与 C# 应用程序一起使用的工具来查找可能违反 Demeter 的法律?我知道它会产生很多误报,但我认为它仍然有用。尤其是在早期的设计过程中。

4

1 回答 1

4

如果您只是在寻找something.somethingelse.violation,那么您可以使用 Visual Studio。

在查找对话框中,选中底部的框以“使用”并选择“正则表达式”。

不是很健壮,但您可以使用<[:a_]+\.([:a_]+\.)+[:a_]+上面的模式找到。

解决方案目录上会有更好的工具grep或类似的工具,因此您可以使用更强大的正则表达式选项,例如否定后视,这将允许您排除using指令和namespace声明等内容。

用于 Windows 的 grep

您可能会非常快速地编写一个 .NET 应用程序,该应用程序将递归给定目录并搜索相同的 .cs 和/或 .vb 文件,使用具有环视功能的 .NET Regex,但当然使用 VS 的优点是您仍然就在源代码编辑器中。

于 2010-08-12T02:25:11.233 回答