输出参数有效地允许您从方法中返回多个值,这通常比返回包含多个值的任意结构或元组更可取。 有人可能会认为,使用输出参数的函数可能会忽略可能的副作用,因为它偏离了传统的“多参数,一个返回值”模型。但是我真诚地认为,与方法后置条件相结合的输出关键字可以清楚地表明程序员的意图。
我建议查看内置类型(如int)上的TryParse方法。返回值是一个布尔值,表示成功与否,而值则通过out参数返回。这种结构使得在循环结构中调用此方法非常有用,而其他返回类型可能会使它变得更加复杂。进一步思考后,一个缺点可能是倾向于将out参数添加到方法中,而不是正确地封装逻辑。