C#中Out类型与Ref类型参数之间的区别是什么

本文关键字:之间 区别 是什么 类型参数 Ref Out 类型 | 更新日期: 2023-09-27 18:24:45

可能重复:
.NET 中ref和out参数之间的差异

C#.net中的Out类型参数和Ref类型参数有什么不同?


我们什么时候可以在什么情况下使用?

C#中Out类型与Ref类型参数之间的区别是什么

两者都向调用方指示该方法可以修改参数的值。out参数必须在方法内部初始化,而ref参数可能在方法外部初始化。这基本上是一份合同。当您看到一个使用out参数的方法时,这意味着调用方可以在不初始化值的情况下调用它,并确保它将在内部初始化

Foo foo;
SomeMethod(out foo);
// at this stage we know that foo will be initialized

而参考:

Foo foo;
SomeMethod(ref foo); // compile time error

调用方负责在调用方法之前初始化变量:

Foo foo = new Foo();
SomeMethod(ref foo); // ok

从这里引用

out关键字导致参数通过引用传递。这是类似于ref关键字,只是ref要求在传递之前进行初始化。

一些方法,如Int32.TryParse(),使用out参数,因此可以向其中传递一个单元化的变量