string aa = "a"; string bb = "a"; if (aa == bb) { Console.Write("true"); } else { Console.Write("FALSE"); } Console.WriteLine(aa.Equals(bb));Console.ReadKey();可是結(jié)果竟然全部是TRUE !!!!!!我從很多書上都看到過(guò)比較引用類型的時(shí)候不都比較的是引用地址么?。。。。。。?!至少有一個(gè)應(yīng)該是FALSE吧后來(lái)我又試了這個(gè) Console.WriteLine(Object.ReferenceEquals(aa, bb));仍然然沒(méi)用啦 結(jié)果還是 TRUE
2 回答

叮當(dāng)貓咪
TA貢獻(xiàn)1776條經(jīng)驗(yàn) 獲得超12個(gè)贊
== 操作符比較的是兩個(gè)變量的值是否相等,或兩個(gè)引用是不是指向同一個(gè)內(nèi)存地址.
equals()方法比較的是兩個(gè)對(duì)象指向的內(nèi)存空間里的內(nèi)容是不是相同.也就是比較兩個(gè)"引用類型"是否是對(duì)同一個(gè)對(duì)象的引用.
aa 和 bb 的值在堆棧中是一樣的,在棧中的內(nèi)容也是一樣的,aa和bb是對(duì)同一內(nèi)容的引用
- 2 回答
- 0 關(guān)注
- 402 瀏覽
添加回答
舉報(bào)
0/150
提交
取消