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是对同一内容的引用
- 2 回答
- 0 关注
- 385 浏览
添加回答
举报
0/150
提交
取消