标签:
值类型:int double char decimal bool enum struck;存在内存的栈里
引用类型: string 数组 自定义类 集合 object 接口;存在堆里
值传递和引用传递:
1、值类型在复制的时候,传递的是这个值的本身
2、引用类型在复制的时候,传递的是这个对象的引用
字符串是个特殊:
字符串由于其不可变性,每次赋值都会为其开辟一块新的内存如:
string s1 = "张三"; string s2 = s1; s2 = "李四"; Console.WriteLine(s1); Console.WriteLine(s2); Console.ReadKey();
最终结果,s1 = 张三, s2 = 李四
int number = 10; TestTwo(ref number); Console.WriteLine(number); Console.ReadKey(); } public static void TestTwo(ref int n) { n += 10; }
上述代码中,ref把n的地址变成类number的地址,也就是,ref把值传递变成了引用传递。
如果不加ref,值传递是把number的值传递给n,方法中没有返回值,不会改变外部调用方法时传递的实参,
但是加了ref以后,n接收的是number的地址,所以n的改变就会影响number的值(按照自己的理解所写,有点乱,呵呵)
.Net学习笔记----2015-06-28(值类型和引用类型)
标签:
原文地址:http://www.cnblogs.com/mikie/p/4606439.html