有没有一种简单的方法来重构C#中的参数?

时间:2012-09-22 19:26:51

标签: c# refactoring visual-studio-2012

我有34种不同的方法,它们接受我的ViewModel类的1个参数,但是每个方法在类上只使用了两个或三个属性。我想我宁愿把这些属性传递给这些方法而不是整个对象。这是一种轻松重构的方法吗?我试着只选择我的函数中的所有文本并执行Refactor>提取方法希望它足够智能,只能看到对象的2个属性被使用,并使参数列表只是那两个属性,但它只是想再次获取整个对象。

也许我需要解释一下我在做什么......

我正在尝试编写一个为wiki页面生成文本的应用程序。根据输入到UI中的值,它将生成模板的文本和使用该模板的文本,或者如果不需要模板,它将只生成页面的文本。它有17个不同的部分,因此有17个功能,当组合时,创建模板页面的文本,并且如果不需要模板,有17个功能组合成实际页面。我是这样做的,所以我可以一次测试一小块,而不是测试一个大型函数的整个输出。

所以目前这些方法中的所有34个都采用1个参数,即从UI构建的整个对象。对我来说,没有任何意义。生成整个页面的1个部分的函数永远不需要知道在不同部分中使用的数据,如果有人试图在那里使用它,那么我就知道出了什么问题。

2 个答案:

答案 0 :(得分:7)

有没有理由不通过该对象?对象通过引用传递,它非常有效,而且如果您的实现需要更多属性,则修改函数比维护函数声明和跟踪所有调用者更容易。我倾向于不管它。

但是要回答您的具体问题,我不知道在Visual Studio中重构它的方法。这是另一个原因,如果它有效,我会倾向于不管它。 :)

答案 1 :(得分:0)

也许Resharper可以帮助你,因为它提供了很多different refactoring functionalities。您可以尝试下载有效期为30天的试用版。不幸的是,目前还没有开放EAP程序,因为他们正在发布v7。