ref和out参数一直没有怎么弄明白,今天又去查了一点资料,写一点自己的愚见!
ref就相当于C++中的引用传递,在方法函数中能够改变变量中的值,在定义和调用带该方法时都必须带ref关键字。
out和ref的用法差不多,唯一区别就是使用ref关键字的变量必须初始化。
所以ref关键字一般用于传入参数值并修改某个结果,out关键字用于带出方法函数中的某个结果。
比如:
![](https://www.cnblogs.com/Images/OutliningIndicators/ContractedBlock.gif)
Code
class textref
{
static void the_ref_test(ref int i)
{
i = 10;
}
static void the_out_test(out int i)
{
i = 10;
}
static void Main()
{
int m = 0;
int n;
the_ref_test(ref m);//调用方法时,必须带ref关键字,现在m的值为10
the_ref_test(ref n);//错误,ref参数传递给方法必须初始化
the_out_test(out m);//正确。n的值为10.
the_out_test(out n);//正确。n的值为10.
}
}