1.加了ref相当把真正的内存地址传入函数,在函数里的任何修改都会影响这个变量,
如果不加ref就相当于再建一个新变量指针指向原内存地址,如果传的参数是对象,那么对此对象
的任何操作除了赋值都会改变原变量,但赋值操作就不行,如果传参数是值类型,那么在子函数中
的任何操作都不会改变原变量的值
看如下代码:
class A
{
public int c;
}
private static void test(A a)
{
a.c = 11;
a = new A();
a.c = 22;
}
static void Main(string[] args)
{
A a = new A();
test(a);
Console.WriteLine(a.c); // 输出11
}