1;两者的介绍
介绍:C语言中有指针,可以通过指针使得函数不仅有返回值,还能够返回修改过后的参数,而C#也可以做到这一点,就是依靠ref和out这两个关键字。当然,ref和out并没有指针这么强大,也仅仅是可以用在方法中而已。
……
……
2;两者的区别
区别:ref和out都可以返回改变后的参数,两者在使用上还是有一定区别的。
区别1:当使用ref关键字时,其关键字需要先进行初始化,而out则不用。
区别2:在方法内部,ref修饰的变量可以任意使用,而out修饰的变量却需要赋值才可以。(注意:即使out修饰的关键字在方法外面已经进行过初始化了,但是在方法内部仍然需要进行赋值,否则就会报错)
以下用实例来说明两者的区别。
using System;
namespace study
{
class Program
{
static void Main(string[] args)
{
int a = 10;
int b = 20;
selfAddRef(ref a,ref b);
Console.WriteLine(a);
Console.WriteLine(b);
selfAddOut(out a, out b);
Console.WriteLine(a);
Console.WriteLine(b);
}
static void selfAddRef(ref int a,ref int b)
{
a++;
b++;
}
static void selfAddOut(out int a,out int b)
{
a=1;
b=3;
}
}
}