为什么我们需要"out"参数?

Inf*_*ner 8 c#

我知道"out"就像"ref"类型,除了out变量不必初始化."out"参数还有其他用途吗?有时候我会在回调方法中看到它们的使用,但我从未理解它们实际上是如何工作的,或者为什么我们需要它们而不是全局级ref变量?

Dar*_*rov 14

out参数通过显式指定被调用者将初始化它们来强制调用者和被调用者(被调用的函数)之间的契约.另一方面,当使用ref参数时,我们所知道的是被调用者可以修改它们,但调用者有责任初始化它们.