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

Nic*_*ick 0 c# refactoring visual-studio-2012

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

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

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

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

Joh*_*ood 7

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

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