本帖最后由 李荣壮 于 2011-10-26 14:35 编辑
引用类型在内存中 需要两块地方 储存数据:堆和栈
数据存储在堆中,而引用存储在栈中(也就是存储的堆的地址).
你每次对它赋值以后,都会重新在内存中创建一个堆.栈中将存储 新的堆的地址
所以当执行 s1="efg"; 时 s1引用到新的内存地址,而s2还是指向原来的内存地址.
我们通过下面的代码试一下- //string.ReferenceEquals 用于判断指定的两个Object类型是否为相同实例
- Console.WriteLine(string.ReferenceEquals(s1, s2));
复制代码 |