我在一个文件夹中有60个左右的类,我为这些继承的类创建了一个基类。
除了在Visual Studio中复制和粘贴方法外,还有其他自动方法吗?
我希望resharper有一些功能,但找不到。
答案 0 :(得分:3)
您可以使用Visual Studio的搜索和替换功能自动执行剪切/粘贴过程,以查找所有声明,并将其替换为从基类继承的声明。
public class {:i}
public class \1 : MyBaseClass
继续点击[Find Next]
以查找下一次类声明。如果搜索突出显示您要修改的六十个声明中的一个,请点击[Replace]
,否则请点击[Find Next]
。
答案 1 :(得分:1)
这个正则表达式可以解决这个问题:
(.*)?(class .*)?(.*)?{
它匹配任意数量的字符,后跟单词'class',后跟任意数量的字符,后跟一个大括号。
在所有代码文件中执行替换,将其替换为替换文本:
$1 : yourBaseClassName {
已经使用this在线regexp验证器对其进行了测试,该验证器处理js regexp,并假设您的文件不已经实现了子类/接口。原始,但可以作为一个起点。
答案 2 :(得分:0)
您可以编写工具并将其用作pre build event。
该工具可以是一个简单的静默命令行可执行文件,它将: MyBaseClass
写在任何看起来像class MyClassName
的内容的右侧。
它需要一个路径作为参数,并为它在那里找到的每个* .cs文件执行。
据我所知,这是你想要达到的最接近的。
你也可以尝试使用像PostSharp这样的工具(不是免费的)来利用AOP(面向属性的编程),但是你必须使用属性来标记每个类,这会破坏你的目的。