在 C# 中,有三种向方法传递参数的方式。
1.值参数:调用方法时,会为每个值参数创建一个新的存储位置,复制参数的实际值给函数的形参。
按值传递--传递实参变量存储的内容
作用:传递信息
2.引用参数:引用参数是一个对变量的内存位置的引用,复制参数的内存位置的引用给形参。
按引用传递--传递实参变量自身的内存地址
作用:改变数据
3.输出参数:可以返回多个值。
按引用传递--传递实参变量自身的内存地址
作用:返回结果
输出参数与引用参数的区别
ref 传入的变量必须初始化,但是在内部 可改可不改 (有进有出)
out 传入的变量不用初始化,但是在内部 必须修改该值 (只出不进)
区别1:输出参数 传递之前不需要赋值
区别2:方法内部必须为输出参数赋值
如下图:
static void Main(string[] args)
{
Console.WriteLine("请输入a的值");
int a = int.Parse(Console.ReadLine());
Console.WriteLine("请输入b的值");
int b = int.Parse(Console.ReadLine());
Print(out a,out b);
Console.WriteLine("参数传递后a的值:{0} b的值:{1}", a, b);
}
public static void Print(out int a,out int b)
{
a = 11;
b = 22;
}
输出结果如下:
总结
值参数:传递信息 表示实参和形参使用的是两个不同内存中的值。所以形参值改变,不会影响实参的值。
引用参数:改变数据 表示与提供给方法的实际参数具有相同的内存位置。
输出参数:返回结果 会把方法输出的数据赋给自己,其他方面与引用参数相似。