有什么区别ref
和out
.NET中的参数?在哪种情况下,一个人比另一个更有用?什么可以使用一个代码段,另一个可以使用?
答案
它们几乎相同 - 唯一的区别是您通过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
)已经使用了某物的返回值。