什么是按引用传递和按值传递?
1、值类型按引用传递,使用 ref 关键字,参数结果会传递外层。
如:
static void SetDefault(ref int s) { s=1; } static void Test() { int s=0; SetDefault(ref s);//s=1 }
2、引用类型按值传递。
传递的是变量,若更改变量的引用地址,无法传递。
如下经典错误:
static void CreateInstance(objcet obj) { if(obj==null) { obj=new object(); } }
更改变量属性,可以传递。
ps:
注意 string 为引用类型,
注意字符串扩展方法不会改变其本身。