0


想要在我的类中每个方法的第一行添加一些 console.writeln
(c#,Visual Studio 2010 中的 cs 文件)。如何使用正则表达式进行识别,以便我可以搜索替换?

搜索替换前:

void method1(int a)  
{  
}

搜索替换后:

void method1(int a)  
{  
    console.writeln  
}  

如果有帮助的话,我也有更清晰的。Alt up down 箭头带你到下一个 prev 方法开始
谢谢

4

3 回答 3

2

对于一组非常有限的预定义方法定义,使用正则表达式可能会做到这一点,但在一般情况下可能是不可能的也就是说,您可以轻松地创建一个匹配“void method() {”的正则表达式和一些简单的变体。但事情很快变得复杂起来。想象一下这个方法:

public static Tuple<int, string, List<Tuple<int, string>>> DoSomething(<arbitrarily complex parameter list>)
{
}

您可以使用正则表达式来获取单个标记(即“公共”、“静态”等),但要确定某事物是否是一种方法,将需要比仅使用正则表达式更多的解析逻辑。

我建议您使用 ReSharper 或一些可以为您识别方法的类似工具。除非你真的想实现 C# 解析器的大部分。

于 2011-03-18T18:43:07.530 回答
2

代码气味?这里更大的目标是什么?您是在添加日志记录还是添加分析?对于普通的程序员来说,看起来你正在做的事情可能很常见并且已经巧妙地解决了。我没有太多工作要做,但我想说在你的方法中添加一个自定义属性会是一个更好的开始。

编辑:这种方法被称为“面向方面的编程”。查看示例,了解您所追求的好方法。

于 2011-03-18T19:47:12.690 回答
1

查看这篇文章使用 Visual Studio 中的宏立即记录您的代码。它处理在 VS 宏中解析代码。

于 2011-03-18T19:08:11.493 回答