其实,你也不用理解得多复杂!你只要知道,如果用上ref的话,操作的是同一个变量,所以会改变值,如果没用上ref的话,操作的不是同一个变量,所以值不会改变。这就行了!其他的,以后学得深入了,你就会懂了!现在弄这些问题,只会令你学得很痛苦的!只不过用ref的话,调用的参数要在调用前就要初始化,初始化,你懂吧?就是赋值!
控制权传递回调用方法,就是说调用swap()函数完成后的意思。
ref的意思就是“引用”。首不加ref的情况,swap函数执行时用到的a,b,函数外面的a,b是两份数据;而加了ref时,则是一份数据。
ref关键字用于将方法内的变量改变后带出方法外。具体我们通过例子来说明:
static void Main(string[] args)
{
int c = 0;
Add(1, 2,ref c);
Console.WriteLine(c);
}
static void Add(int a, int b, ref int c)
{
c = a + b;
}
最后打印出来的结果是3。如果没有加ref参数,由于没有Add()方法没有返回值,调用后,打印出来的结果仍然是0
简单类型数据 调用时 是不回传的 也就是 进去的时候 参数是多少 方法调用结束后 参数值还是多少
ref添加在参数前 就可以保存住 参数值的更改了 适用于简单数据类型的传输
int是值类型,而string是引用类型,值类型改的是它的值,而引用传递过来的是地址,所以地址上的值也会改变。