C#基础(四)——ref与out的区别

1.ref传进去的参数必须进行初始化,out没必要
int i;
SomeMethod( ref i );//语法错误
SomeMethod( out i );//经过函数

2.ref传进去的参数在函数内部能够直接使用,而out不可;
public void SomeMethod(ref int i)
{
int j=i;//经过
//...
}
public void SomeMethod(out int i)
{
int j=i;//语法错误spa

}变量

3.ref传进去的参数在函数内部能够不被修改,但out必须在离开函数体前进行赋值。
rel能够把参数的数值传递进函数,可是out是要把参数清空,就是说你没法把一个数
值从out传递进去的,out进去后,参数的数值为空,因此你必须初始化一次。这个就
是两个的区别,或者说就像有的网友说的,rel是有进有出,out是只出不进。
4.out适合用在须要retrun多个返回值的地方,而ref则用在须要被调用的方法修改调
用者的引用的时候。
总结:
相同点:二者都是按地址传递的,使用后都将改变原来参数的数值。
不一样点:ref能够把参数的数值传递进函数,可是out是要把参数清空,就是说你没法把
一个数值从out传递进去的,out进去后,参数的数值为空,因此你必须离开函数体以前初始化一次。语法

ref必须先在函数外部初始化才能完成引用;out是内部为外部赋值,因此在外部不须要初始化。引用

ref是内部对外部的值进行改变;而out则是内部为外部变量赋值,能够返回多个值。方法

相关文章
相关标签/搜索