首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

字符串是不可变的 为什么还能+=解决方法

2012-05-01 
字符串是不可变的 为什么还能+stringahello stringbh //Appendtocontentsofbb+ello Console.

字符串是不可变的 为什么还能+=
string   a   =   "hello ";
string   b   =   "h ";
//   Append   to   contents   of   'b '
b   +=   "ello ";
Console.WriteLine(a   ==   b);
Console.WriteLine((object)a   ==   (object)b);
 


既然是不可变的,那为什么还能+=呢?????
还有一个可变的字符串对象是什么,要用new   的,我给忘了

[解决办法]
这个是面试的老问题了,呵呵,基础。ls说的基本是对的。
a,b你可以理解为指向内存块的指针,a+=b 的步骤是: 再开辟一块空间,内容是a+b的内容,然后由a指向他
注意,此时的内存中有3块string, 1:a 的原始内容 2: b的内容 3:a的新内容
所以说string 不可以变,也是对的,因为原有的a的原始内容没有改变过

热点排行