任何人都可以指出out参数的优缺点。当首选使用out参数而不仅仅是返回一个值时。
答案 0 :(得分:6)
Out参数有效地允许您从方法返回多个值,这通常比返回包含多个值的任意struct或tuple更好。
有人可能会争辩说,忽略使用out参数的函数的可能副作用更容易,因为它偏离了传统的“多参数,一个返回值”模型。但老实说,我认为out关键字加上一个方法后置条件使得程序员的意图非常明确。
答案 1 :(得分:4)
我建议你看一下内置类型的TryParse方法,比如int。返回值是bool,表示通过out参数返回值时成功。这个结构使得在循环结构中调用此方法很有用,其中另一个返回类型会/可能会使它更复杂。
进一步反思一个骗局可能是不断向参数添加参数而不是正确封装逻辑的倾向。
答案 2 :(得分:0)
正如你所说,没有out参数,你只能返回一个值,out关键字允许你“返回”多个值
答案 3 :(得分:0)
在C#中,您无法返回多个变量,因此如果您不想通过类(返回包含这些多个变量的类),您可以使用out参数完成工作。