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 關注
- 398 瀏覽
添加回答
舉報
0/150
提交
取消