参数传递还是很常见的,基本上每个程序中都有,所以,弄清楚参数传递的特点很重要,必须掌握。
方法中传递参数的方法总的来说有两种,也就是我们常说的值传递和引用传递
第一种:普通传参
第二种:引用传参ref和out
那么下面就让我们来具体的了解一下这两种方法
第一种:普通传参
第二种方法:引用传递(以ref为例)
从图上我们可以看出,使用引用传递,需要在调用的时候在变量名前加上ref,然后在被调用的方法的参数的类型前面加上ref,这样就形成了引用传递。传递参数的时候就是将变量的地址传递给方法,然后方法在更改相同内存地址中的变量值。
需要返回多个值的时候就会使用这样的方法,方法正常的return回一个值,那么剩下的多个值就需要使用ref和out引用传参来实现
到这里就会有的人会想到,引用传递可以使用ref和out,那么ref和out之间有什么区别呢?
→ref要求变量使用前必须赋值,但是在方法中却随意,赋值与不赋值都可以
→out要求在方法中必须在使用前赋值(即使不使用也要赋值),传递参数之前随便赋值不赋值,就算赋值了也没有意义,在方法中也会被改变
static void Main(string[] args)
{
int i = 10; //传递之前的赋值不能少
Func(ref i);
Console.WriteLine(i);
Console.ReadKey();
}
static void Func(ref int num)
{
num =50; //方法中的赋值语句有没有都可以
}
而out
static void Main(string[] args)
{
int i = 10;//传递之前的赋值可以没有
Func(out i);
Console.WriteLine(i);
Console.ReadKey();
}
static void Func(out int num)
{
num =50;//方法中的赋值语句必须有,而且不管使用与否
}