C#中Out类型与Ref类型参数之间的区别是什么
本文关键字:之间 区别 是什么 类型参数 Ref Out 类型 | 更新日期: 2023-09-27 18:24:45
可能重复:
.NET 中ref和out参数之间的差异
C#.net中的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参数,因此可以向其中传递一个单元化的变量