有什么区别refout.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)已经使用了某物的返回值。

来自: stackoverflow.com