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都无关的新的引用? 展开
那么
string str1="abc";
string str2="123";
string str3=str1+str2;
此时str3中存储的是str1和str2的引用?还是一个与str1和str2都无关的新的引用? 展开
4个回答
展开全部
+后是返回一个新的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());//比较两个变量的引用是否相同
}
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());//比较两个变量的引用是否相同
}
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
abc123
是一个新地址的引用
是一个新地址的引用
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
一个与str1和str2都无关的新的引用
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
abc123一个新的字符串
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询