当前位置:  开发笔记 > 编程语言 > 正文

为什么一些相同的字符串不在.NET中实现?

如何解决《为什么一些相同的字符串不在.NET中实现?》经验,为你挑选了1个好方法。

你应该false为电话ReferenceEqualsstring不属于字符串文字对象.

本质上,最后一行True是巧合打印的:当你传递一个空字符串进行字符串连接时,库优化会识别出这一点,然后返回原始字符串.这与实习没有任何关系,因为从控制台读取的字符串或以任何其他方式构造的字符串也会发生同样的事情:

var s1 = Console.ReadLine();
var s2 = s1+"";
var s3 = ""+s1;
Console.WriteLine(
    "{0} {1} {2}"
,   object.ReferenceEquals(s1, s2)
,   object.ReferenceEquals(s1, s3)
,   object.ReferenceEquals(s2, s3)
);

以上打印

True True True

演示.



1> dasblinkenli..:

你应该false为电话ReferenceEqualsstring不属于字符串文字对象.

本质上,最后一行True是巧合打印的:当你传递一个空字符串进行字符串连接时,库优化会识别出这一点,然后返回原始字符串.这与实习没有任何关系,因为从控制台读取的字符串或以任何其他方式构造的字符串也会发生同样的事情:

var s1 = Console.ReadLine();
var s2 = s1+"";
var s3 = ""+s1;
Console.WriteLine(
    "{0} {1} {2}"
,   object.ReferenceEquals(s1, s2)
,   object.ReferenceEquals(s1, s3)
,   object.ReferenceEquals(s2, s3)
);

以上打印

True True True

演示.

推荐阅读
雨天是最美
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有