首页 新闻 会员 周边

string是immutable不可变的,重新赋值会创建新字符串吗

0
[已解决问题] 解决于 2012-10-03 08:50

string s = "a";

s = "b";  //这里重新赋值为c,要重新创建对象吗,怎么理解

s = "c";

C#
999999999999999的主页 999999999999999 | 初学一级 | 园豆:3
提问于:2012-09-15 23:43
< >
分享
最佳答案
0

你上述的代码会在内存中创建3个字符串 a,b,c

奖励园豆:5
chenping2008 | 大侠五级 |园豆:9836 | 2012-09-16 13:02
其他回答(1)
0

是的,字符串内部是一个char数组,每一次赋值都是固定大小的char数组,你也知道数组是不会动态改变的吧。

Timetombs | 园豆:3954 (老鸟四级) | 2012-09-16 01:49

string s = "a";

s = "b"; 

那意思是这里是两个对象,string s = "a";是一个对象,s = "b"; 又是1个对象,第一个对象会被垃圾回收

支持(0) 反对(0) 999999999999999 | 园豆:3 (初学一级) | 2012-09-16 08:53

@999999999999999: 

对的

支持(0) 反对(0) Timetombs | 园豆:3954 (老鸟四级) | 2012-09-16 09:49

@999999999999999: http://msdn.microsoft.com/zh-cn/library/system.string(v=VS.80).aspx

支持(0) 反对(0) chenping2008 | 园豆:9836 (大侠五级) | 2012-09-16 13:04
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册