回答主要是因为看到你的分数比较多。。。所以写了个实例给你。没多少好讲的,和C语言的指针类似。如果不加ref,函数参数传递的时候是把值赋值一份,函数内部的操作不会影响外部。加了ref就是和外部是一个值。
static void Main(string[] args)
{
int a = 2;
int b = 3;
Console.WriteLine("a={0},b={1}", a, b);
Swap(ref a, ref b);// 2, 3
Console.WriteLine("a={0},b={1}", a, b);
Console.ReadLine();// 3, 2
}
static void Swap(ref int a, ref int b)
{
int c = a;
a = b;
b = c;
}
要解释这个比较麻烦。首先你要懂值类型如int, double, 结构等与引用类型如string, 类, 数组等。本来int是值类型,一般情况是值传递,如果你在调用的方法中在参数前加了个ref,就指定了这个int类型的变量转为了引用传递。