为了账号安全,请及时绑定邮箱和手机立即绑定

关于 STRING 的 Equals 与 ==

关于 STRING 的 Equals 与 ==

大话西游666 2018-11-01 09:07:23
string aa = "a";            string bb = "a";            if (aa == bb)            {                Console.Write("true");            }            else            {                Console.Write("FALSE");            }            Console.WriteLine(aa.Equals(bb));Console.ReadKey();可是结果竟然全部是TRUE !!!!!!我从很多书上都看到过比较引用类型的时候不都比较的是引用地址么!!!!!!!!至少有一个应该是FALSE吧后来我又试了这个 Console.WriteLine(Object.ReferenceEquals(aa, bb));仍然然没用啦 结果还是 TRUE
查看完整描述

2 回答

?
叮当猫咪

TA贡献1776条经验 获得超12个赞

== 操作符比较的是两个变量的值是否相等,或两个引用是不是指向同一个内存地址.

equals()方法比较的是两个对象指向的内存空间里的内容是不是相同.也就是比较两个"引用类型"是否是对同一个对象的引用.

 

aa 和 bb 的值在堆栈中是一样的,在栈中的内容也是一样的,aa和bb是对同一内容的引用


查看完整回答
反对 回复 2018-11-02
  • 2 回答
  • 0 关注
  • 372 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信