一尘不染

.NET中ref和out参数之间的区别

c#

这个问题已经在这里有了答案

‘ref’和’out’关键字有什么区别? (26个答案)

2年前关闭。

.NET中的refout参数之间有什么区别?在什么情况下一个可以比另一个更有用?一个可以使用而另一个不能使用的代码片段是什么?


阅读 368

收藏
2020-05-19

共1个答案

一尘不染

它们几乎相同-唯一的区别是您out不需要初始化作为参数传递的变量,但必须将其作为ref参数传递给它。

int x;
Foo(out x); // OK

int y;
Foo(ref y); // Error: y should be initialized before calling the method

Ref参数用于可能被修改out的数据,参数用于int.TryParse已经作为函数(例如)的附加输出的数据,这些数据已经使用了返回值。

2020-05-19