将数组中的隐式变量赋值重构为数组外的显式赋值

时间:2014-02-22 18:19:51

标签: c# visual-studio resharper coderush

我有一个代码块,它隐式地将变量添加到数组中,即

context.People.Add( new Person { Name = "Joe", Age = 45 }, new Person { Name = "Alicia", Age = 33 } );

我需要的是变量可以在代码块之外访问,即

var personJoe = new Person { Name = "Joe", Age = 45 };
var personAlicia = new Person { Name = "Alicia", Age = 33 };
context.People.Add(personJoe, personAlicia);

这样,当我需要对另一个与人有关系的实体进行分配时,我可以访问person变量。

我的问题是,执行此重构的最简单方法是什么?我知道我可以复制/粘贴,但我拥有的块大约有200行,我发现自己经常需要这种类型的重新分解。如果可能的话,我想避免付费解决方案(ReSharper),但如果这是使这个过程自动化的唯一方法,我会认真考虑它。

2 个答案:

答案 0 :(得分:1)

在我看来,这只是一个介绍变量重构。 Visual Studio没有内置的重构;但也许其他附加组件可以。如果您不想要付费解决方案,那么重构包括复制/粘贴,然后添加变量并使用它。

要在Resharper(使用Visual Studio键盘方案)中执行此操作,只需选择实例化Person的位置(例如new Person { Name = "Alicia", Age = 33 })并按Ctrl + R,V。

答案 1 :(得分:1)

我刚写了这个CodeRush插件。 (花了大约20-30分钟:))我认为它可以满足您的需求。

Introduce Local (All arguments)

如果您安装了CodeRush,则可以Download it here