我知道它的out工作方式非常类似于ref它在进入函数时将传递的参数初始化为其默认值.
我的问题是在"在函数输入时重置变量"这有什么用处?
如果有人能给我一个out比这更有用的例子,那就太棒了ref.
ref和之间的主要区别out是意图.当ref使用时,预计传入的值将被函数使用.并且该功能可能会也可能不会设置它.您甚至可以拥有const ref,这意味着传入的变量不会被复制,但也无法更改.
const out另一方面,没有任何意义,因为意图out是变量将在函数中设置.使用out本质上是一种向函数添加另一个返回值的方法.ref 可以用于此,但是使用ref不向调用者指示将不使用传入的值,或者甚至必须将变量分配给,而out指示不使用该值并且该变量将被分配到.
将out变量设置为其默认值的原因是为了避免错误.如果函数的目的是使用out参数作为另一个返回值,那么通常不希望该函数受传入的值的影响.通过将out参数设置为其默认值,它保证该变量将对于该函数,始终是相同的值,无论传入的是什么,因此您可以避免由于函数意外地依赖于该值而导致的错误.
现在,不要求out在函数内分配参数,但是它确实与调用者通信这是意图,并且它确实为其分配默认值,因此从调用者的角度来看,out参数总是被赋值为值(即使它是默认值).因此,out如果有意义,函数可以自由设置参数(例如,如果默认值是在某些情况下应该"返回"的那个).