C#中一个string变量存储两个string变量连接后的是什么?

C#中两种数据类型,string是引用类型,但又与其它引用类型有些区别,就是修改一个string变量将重新得到一个新的字符串.那么stringstr1="abc";str... C#中两种数据类型,string是引用类型,但又与其它引用类型有些区别,就是修改一个string变量将重新得到一个新的字符串.
那么

string str1="abc";
string str2="123";
string str3=str1+str2;

此时str3中存储的是str1和str2的引用?还是一个与str1和str2都无关的新的引用?
展开
 我来答
百度网友eab4a8d
2009-04-22 · TA获得超过1824个赞
知道小有建树答主
回答量:549
采纳率:0%
帮助的人:403万
展开全部
+后是返回一个新的string 对象,str3的引用和str1和str2不同了。
string是个恒定不变的字符序列集合。

我给你做个试验:
string str1 = "abc";
string str2 = "123";
string str3 = str1 + str2;
MessageBox.Show(Object.ReferenceEquals(str1,str3).ToString());//比较两个变量的引用是否相同
MessageBox.Show(Object.ReferenceEquals(str2,str3).ToString());//比较两个变量的引用是否相同

前两个结果是false,也即证明了是不同的引用,
那么我特别为你做了个后面的试验,呵呵你猜测下是什么,结果是true,这个是.net字符串驻留技术,这个你网上应该能查到相关资料。
MessageBox.Show(Object.ReferenceEquals(str1, "abc").ToString());//比较两个变量的引用是否相同
}
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
帐号已注销
2009-04-22 · TA获得超过324个赞
知道小有建树答主
回答量:529
采纳率:0%
帮助的人:0
展开全部
abc123
是一个新地址的引用
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
wa...y@163.com
2009-04-22 · TA获得超过228个赞
知道答主
回答量:334
采纳率:0%
帮助的人:0
展开全部
一个与str1和str2都无关的新的引用
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
e2ec
2009-04-22 · TA获得超过702个赞
知道小有建树答主
回答量:929
采纳率:0%
帮助的人:472万
展开全部
abc123一个新的字符串
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式