方法中的参数

时间:2011-07-12 05:56:13

标签: c#-4.0

我有一个方法,其中有超过7个参数,所有参数的类型都不同。   好吧,我的问题是它很好,或者我应该用单个类替换所有参数(这将把所有参数作为实例变量)。

4 个答案:

答案 0 :(得分:2)

  

我的问题是没问题,或者我应该用单一类替换所有参数

7太过分了。替换为班级。使用我的VS自定义主题和字体设置当有一个包含如此多参数的方法时,Intellisense不适合屏幕:-)我发现在使用类时它更易读,更容易理解。

当然那些只是我的2美分,这是主观的。我见过人们用很多参数编写方法。

答案 1 :(得分:2)

嗯, 那些我认为没问题的地方 - 但它们很少而且很远。我通常会考虑使用“参数类”。

请注意,它不一定是“全有或全无”方法 - 将4个参数封装在一起会更有意义吗?这会允许新类在其他方法中使用吗?

要考虑的另一件事是该方法是否可能做得太多 - 该方法的功能是否确实作为一个单一的内聚单元感觉正确?

答案 2 :(得分:0)

Thare是具有更多参数的Microsoft API;无论如何我同意@Darin,一个类可以是一个很好的解决方案,清晰而有效,可以避免以正确的顺序传递参数...所以例如,如果你改变oen的顺序而不使用重构你就是一团糟...... 。
还要考虑该类是否可以在程序的其他部分中使用...

答案 3 :(得分:0)

我有点同意所有给出的答案。然而,如Jon建议的那样,将方法分解为更小的部分可能是个好主意。通常当你遇到这种情况时,这意味着该方法做得太多了。通常,方法最多应包含1或2个参数。虽然您可以通过使用类参数替换所有参数来实现相同的目标,但您可能只是隐藏了更大的问题。您是否有机会发布该方法或描述它正在做什么?

根据经验,如果你不能适应整个方法,包括在1个屏幕上声明,那就太大了。程序员通常会建议分解方法以使其可重用。但是,将它们分解以提高可读性也是完全合理的。