我有一个out
参数的方法,如:
void Do(int anInput, out List<string> items, out int count)
{
/* some code */
}
现在我想转换该签名,以便out参数被该方法返回的对象替换为:
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重构从参数中提取类。但似乎它对out
参数没有帮助。
更新: Daniel A.怀特的回答非常适合.Net 4.0。 .Net 3.5有解决方案吗?生成 Tuple 也没关系。
答案 0 :(得分:3)
我在他们的文档中发现了这种重构。它会将其更改为Tuple,但它至少应该让您开始。
http://www.jetbrains.com/resharper/webhelp/Refactorings__Transform_Out_Parameters.html
从那里,您可以进行更改签名。