2

我有一个带有out参数的方法,例如:

void Do(int anInput, out List<string> items, out int count)
{
   /* some code */
}

现在我想转换该签名,以便将输出参数替换为该方法返回的对象,例如:

DoResult Do(int anInput)
{
   /* some code */
   return new DoResult{Items=TODO, Count=TODO};
}

class DoResult {
    public List<string> Items;
    public int Count;
}

在 Visual Studio 2010 或 ReSharper 7 中是否对这种转换进行了重构?

我知道 ReSharper 重构Extract Class From Parameters。但它似乎对我的out参数没有帮助。

更新: Daniel A. White 的回答非常适合 .Net 4.0。.Net 3.5 有解决方案吗?元组的生成也可以。

4

1 回答 1

3

我在他们的文档中发现了这种重构。它将它更改为一个元组,但它至少应该让你开始。

http://www.jetbrains.com/resharper/webhelp/Refactorings__Transform_Out_Parameters.html

从那里,您可以更改签名。

于 2013-04-09T12:49:17.417 回答