【发布时间】:2013-12-10 17:56:59
【问题描述】:
通过我们的代码库,我们的许多自定义控件都有一个DetachEvents 方法,该方法在控件被释放时被调用。很多时候,其他开发人员错误地是事件处理程序
private void DetachEvents()
{
myControl.Click += new EventHandler(myControl_Click);
}
当然应该是-= 而不是+=。
我正在尝试为 Visual Studios 中的查找和替换工具提供一个正则表达式,以仅找到包含 += 的 DetachEvent 方法,但我不知道该怎么做。如果我继续寻找DetachEvents()的每一次出现,我会在这里一整天。
我试过:DetachEvents()[.]+=[.] 认为该句点会在 += 之前和之后找到任何东西,但它什么也没找到。
【问题讨论】:
-
您是否考虑过使用类似 Roslyn 之类的东西来获取相关的抽象语法树,而不是使用正则表达式?
-
不要忘记,如果您使用带有正则表达式的 Visual Studio,您正在使用一种完全奇怪且无意义的方言:codinghorror.com/blog/2006/07/…
-
@glenatron 自 VS 2012 以来已“修复”。msdn.microsoft.com/en-us/library/2k3te2cs.aspx
-
那么您是否进行了搜索以找出其中任何一个可能意味着什么?见msdn.microsoft.com/en-us/vstudio/roslyn.aspx和en.wikipedia.org/wiki/Abstract_syntax_tree
-
乔恩是对的,这对罗斯林来说是完美的。正则表达式会差很多。
标签: c# regex visual-studio-2010 visual-studio