如何查找可疑语句,如“Name = Name;”在C#by Regex?

时间:2010-07-11 09:19:09

标签: c# regex

我的C#代码有很多声明,例如“this.Name = ...”。为了使我的代码整洁,我让文本编辑器替换所有“这个”。一无所获。代码仍然有效。但后来我资助它给我带来了很多新的麻烦,因为我写了一些陈述,如:

this.Name = Name; // the second Name is a parameter.

更换后,它变为:

Name = Name;

现在,我遇到了太多代码。如何找到像“Name = Name;”这样的可疑代码Regex在VS 2010中的表现?

谢谢,

3 个答案:

答案 0 :(得分:7)

当您只需编译解决方案并查找CS1717 warning时,为什么要使用Regex:

  

对同一变量进行分配;没有   你的意思是分配其他东西吗?

另请注意,在C#中,让参数以小写字母开头是一个很好的约定。

答案 1 :(得分:5)

我同意Darin的方法更强大,应该先做。不过你可能会 已经注释掉了这种方法将会遗漏的代码部分。

尝试找到可以使用“在文件中查找”的内容。在查找框中,勾选“使用常规表达”并输入{:i}:Wh*=:Wh*\1

  • :i C样式标识符(括在括号中的“标记”表达式)
  • :Wh*零个或多个空格字符
  • \1对发现的标记标识符的反向引用

这种方法可能会带来一些误报,所以你可以尝试:Wh+{:i}:Wh*=:Wh*\1:Wh+如果有太多但是有可能错过一些匹配(例如结束注释标记紧跟在赋值语句之后)

答案 2 :(得分:1)

如果你之后没有改变太多,你可以从你的CVS恢复你的最后一次提交。

做你问的问题是,可能还有其他情况,“这个”不应该被替换,你还没有看到问题。