C# 的string类型赋值!

如下:stringa=b="asd";我想知道a初始化后,是否会重新占一块内存;还是a只是b的一个引用,指向同一个"asd"!... 如下:
string a=b="asd";
我想知道 a初始化后,是否会重新占一块内存;
还是a 只是b的一个引用 ,指向同一个"asd"!
展开
 我来答
西三227
2010-03-28 · TA获得超过1168个赞
知道小有建树答主
回答量:473
采纳率:0%
帮助的人:349万
展开全部
我可以很肯定的告诉你,“string a=b="asd"; ”这句话本来就是错的,语法错误!至少在Visual Studio 2005无法通过!哪有人这样定义的。
应该这样:
string a="asd";
string b=a;
string类型是一种很特殊的引用类型,它是只读的!!!也就是上面的句子会导致两次分配内存空间!这也是为什么很多书都提到当操作很多字符串时,要使用stringbuidler,就是这个原因!
当然你可以使用String.Intern把它放到拘留池中这样就引用同一个对象了。
例如
string a="asd";
string b=string.intern(a);
xiwenxiaolove
2010-03-28 · TA获得超过419个赞
知道小有建树答主
回答量:408
采纳率:0%
帮助的人:0
展开全部

string a="asd"; 

string b=a;

 其实a,b是一块内存空间,但是一旦改变其中一个的值 就变成了两个

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友451206a
2010-03-28 · TA获得超过1815个赞
知道小有建树答主
回答量:391
采纳率:0%
帮助的人:475万
展开全部
这样写是指向同一个"asd";

如果写成
a="asd";
b="asd";

这样就是有两个asd了
a 和 b 各 指向 一个。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
huanghun00135
2010-03-28 · TA获得超过199个赞
知道小有建树答主
回答量:179
采纳率:0%
帮助的人:171万
展开全部
废话!明显是开辟了两个空间噻,a一个、b一个,每个空间里面都存储的是"abc" ,你可以验证一下:

如果a是b的引用,那么你修改a的值,b的值也会跟着改变;如果没有改变,那么就说明是a和b都拥有自己的空间
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
4402957
2010-03-28 · 超过13用户采纳过TA的回答
知道答主
回答量:65
采纳率:0%
帮助的人:25万
展开全部
up,都说完了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式