我正在进行大规模的重构。
我有很多方法,通过位置参数调用。现在我想通过命名参数调用它们。这些方法存在于几个非继承的类中,并且具有相同的名称,并且它们的签名不同。例如:
解释
public class Foo
{
public static Foo Create(int count, string name)
{
...
}
}
public class Bar
{
public static Bar Create(string description, bool yesNo, float factor)
{
...
}
}
以下是我想要替换的电话,来自
public void CreateSomeObjects()
{
var foo = Foo.Create(123, "foo");
var bar = Bar.Create("bar", true, 1.23);
}
到
public void CreateSomeObjects()
{
var foo = Foo.Create(count: 123, name: "foo");
var bar = Bar.Create(description: "bar", yesNo: true, factor: 1.23);
}
我使用Visual Studio Premium 2013和Resharper。任何想法如何实现这一目标? (我只需要一个提示,没有完整的解决方案。)
答案 0 :(得分:12)
不确定这是多么实用,但您可以使用ReSharper执行以下操作:
答案 1 :(得分:1)
问了这个问题几年后,我在谷歌搜索时发现了它(因为我处于相同的情况)。
我没有使用ReSharper的权限,但是对我来说,出色的Roslynator是解决方案。
您可以通过VS2017 / 2019 扩展和更新对话框(搜索“ Roslynator”)或通过VS Marketplace进行安装。如果由于某些原因您不希望安装分析仪,则还有a version which only contains the refactorings。
安装扩展并重新启动Visual Studio之后,可以右键单击任何方法的第一个参数,然后选择快速操作和重构... ,然后单击添加参数名称“ XXX”(包括尾随参数)以添加名称(请参见下面的屏幕抓图)。
它不是完全自动化的(尽管我想它可能是基于罗斯林的),但是我已经用它节省了很多的时间。