我有一个方法,其中有超过7个参数,所有参数的类型都不同。 好吧,我的问题是它很好,或者我应该用单个类替换所有参数(这将把所有参数作为实例变量)。
答案 0 :(得分:2)
我的问题是没问题,或者我应该用单一类替换所有参数
7太过分了。替换为班级。使用我的VS自定义主题和字体设置当有一个包含如此多参数的方法时,Intellisense不适合屏幕:-)我发现在使用类时它更易读,更容易理解。
当然那些只是我的2美分,这是主观的。我见过人们用很多参数编写方法。
答案 1 :(得分:2)
嗯, 那些我认为没问题的地方 - 但它们很少而且很远。我通常会考虑使用“参数类”。
请注意,它不一定是“全有或全无”方法 - 将4个参数封装在一起会更有意义吗?这会允许新类在其他方法中使用吗?
要考虑的另一件事是该方法是否可能做得太多 - 该方法的功能是否确实作为一个单一的内聚单元感觉正确?
答案 2 :(得分:0)
Thare是具有更多参数的Microsoft API;无论如何我同意@Darin,一个类可以是一个很好的解决方案,清晰而有效,可以避免以正确的顺序传递参数...所以例如,如果你改变oen的顺序而不使用重构你就是一团糟...... 。
还要考虑该类是否可以在程序的其他部分中使用...
答案 3 :(得分:0)
我有点同意所有给出的答案。然而,如Jon建议的那样,将方法分解为更小的部分可能是个好主意。通常当你遇到这种情况时,这意味着该方法做得太多了。通常,方法最多应包含1或2个参数。虽然您可以通过使用类参数替换所有参数来实现相同的目标,但您可能只是隐藏了更大的问题。您是否有机会发布该方法或描述它正在做什么?
根据经验,如果你不能适应整个方法,包括在1个屏幕上声明,那就太大了。程序员通常会建议分解方法以使其可重用。但是,将它们分解以提高可读性也是完全合理的。