我发现有时候函数有很多参数。这些参数中有很多是可选的,有时这些选项中的一组通常来自单个其他对象(因此您最终会执行foo(Object.GetN(),Object.GetM(),Object.GetK()))。处理它的一种常见方法是为它可能被调用的不同情况创建不同的重载:foo(intn,intm,intk/*,andonandon*/);foo(boolb,intm/*,...*/);foo(intm,intk/*,...*/);foo(Object_tobject/*,...*/);//...这里的问题是哪个参数不是特别直观,当您调用与预期不同的重载时,您可能会大吃一惊。最近我有了一