c#中关键词out和ref的区别

时间:2023-03-09 19:40:38
c#中关键词out和ref的区别

c#中关键词out和ref用来表明以传引用的方式传递参数。

区别如下:

如果方法的参数用out标记,表示方法被调用前不需初始化参数,方法内不能读取此参数的值,在方法返回前必须向此参数写入值;

如果方法的参数用ref标记,表示方法被调用前必须初始化参数,在方法内部可以读取或者读写此参数,也可不对此参数做任何处理。

out事例:

class Program
{
static void Main(string[] args)
{
int val; //无需初始化
GetValue(out val);
Console.WriteLine(val);
} public static void GetValue(out int a)
{
a = ; //必须赋值
}
}

最后val的输出值为20

ref事例:

class Program
{
static void Main(string[] args)
{
int val=5; //必须初始化
GetValue(ref val);
Console.WriteLine(val);
} public static void GetValue(ref int a)
{
a += ; //可以读写,也可不对此参数做任何处理
}
}

最后val的输出值为25

注:上面的两个例子,我操作的都是的值类型,对于引用类型,一样可以使用out和ref关键词。