我有大量的重复代码,我希望在旧版代码库中进行替换,并发现Resharper的Structural Search and Replace feature可以很好地匹配任务。不过,我有问题使它符合我的模式。Resharper结构查找和替换
我希望有快速修复的模式是:
public string PropertyName
{
get { return base.GetSubNode(_parameterNode, "ElementName").InnerText; }
set { base.GetSubNode(_parameterNode, "ElementName").InnerText = value; }
}
这是要替换为:
public string PropertyName
{
get { return GetProperty("ElementName"); }
set { SetProperty("ElementName", value); }
}
我创建了一个模式:
public string $propName$
{
get { return base.GetSubNode(_parameterNode, $elementName$).InnerText; }
set { base.GetSubNode(_parameterNode, $elementName$).InnerText = value; }
}
模式匹配如果我做了搜索,但不会导致快速修复可用。如果我为getter和setter创建一个单独的模式,我会得到快速修复,但getter模式与getter和setter都匹配。
吸气模式:
base.GetSubNode(_parameterNode, $elementName$).InnerText
如何,我可以得到快速修复此getter/setter方法对?
看来,结构搜索和替换[只支持身体级别替换](http://devnet.jetbrains.net/message/5298817#5298817)。这将解释为什么完整的Property模式不会导致快速修复。我仍然想要一种方法将快速修复应用到getter和setter中。 – PHeiberg 2012-01-12 11:50:48
VS查找和替换可能就足够了,并明智地使用它的正则表达式支持。 – AakashM 2012-01-12 12:04:01
@AakashM - 的确如此,但我宁愿一次更换一块巨大的代码库,因为最好缺少测试,而且快速修复会让它变得非常容易。这也是我们学习如何利用结构查找和替换功能的好机会。 – PHeiberg 2012-01-12 12:12:04