它们几乎相同-唯一的区别是您
out不需要初始化作为参数传递的变量,但必须将其作为
ref参数传递给它。
int x;Foo(out x); // OKint y;Foo(ref y); // Error: y should be initialized before calling the method
Ref参数用于可能被修改
out的数据,参数用于
int.TryParse已经作为函数(例如)的附加输出的数据,这些数据已经使用了返回值。

它们几乎相同-唯一的区别是您
out不需要初始化作为参数传递的变量,但必须将其作为
ref参数传递给它。
int x;Foo(out x); // OKint y;Foo(ref y); // Error: y should be initialized before calling the method
Ref参数用于可能被修改
out的数据,参数用于
int.TryParse已经作为函数(例如)的附加输出的数据,这些数据已经使用了返回值。