【发布时间】:2014-10-28 20:05:36
【问题描述】:
我正在进行大规模的重构。
我有几十个方法,通过位置参数调用。现在我想通过命名参数调用它们。这些方法存在于多个非继承类中,并且具有相同的名称并且它们的签名不同。示例:
定义
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。任何想法如何实现这一目标? (我只是需要一个提示,没有完整的解决方案。)
【问题讨论】:
-
您找到解决方案了吗?非常感谢...
-
很遗憾没有。我目前的方法是用Roslyn 重写它。因为我才刚刚开始,所以我暂时不会发布代码。
-
CodeRush 似乎能够插入命名参数(它是一个上下文菜单,您需要手动单击,因此没有自动解决方案)。
-
R# 9(也可能更早)有一个上下文操作来引入参数名称,但是必须在每个调用站点调用它。您想为给定方法的所有调用站点执行此操作吗?
-
我有 R#9 但我没有看到这个选项。我在哪里可以找到它?是的,我想转换所有呼叫站点。
标签: c# visual-studio refactoring resharper automated-refactoring