如以下**:12
3456
789int
age =
25
;
short newage =
25
;
console.writeline(age == newage);
//true
console.writeline(newage.equals(age));
//false
console.readline();
age==newage返回true,newage.equals(age)卻返回false,為什麼呢?
用==時,編譯器位把short隱式轉換為int後,比較兩者的值。
而用equals()時,newage.equals(age),因為newage是short型別的,equals()方法會是short.equals(short),但int無法隱式轉換為short,所以返回false,但用age.equals(newage)就是正確的
c 中「 」和Equals的區別
一 值型別的比較 對於值型別來說 兩者比較的都是 內容 是否相同,即值 是否一樣,很顯然此時兩者是劃等號的。int i 9 int j 9 console.writeline i j i j true console.writeline i.equals j i.equals j true 二 引用...
C 中 和Equals的區別
和equals比較的內容都是一致的,都是比較內容 equals 比較首位址是否相等 比較值是否相等 利用反編譯工具,檢視string原始碼,可以看到如下 從 中可以看出,string對 也進行了重寫,所以,在string型別 和equals的功能是一致的,也是進行值的比較,所以如下 的 string...
C 中 和equals的區別
不想說太多,直接上 這兩個就沒什麼聯絡,有自己獨立的規則。聯絡在一起其實不利於記憶。下面是測試 console.writeline equals和 的區別 console.writeline 1 對於值型別的資料 console.writeline console.writeline 1.1 型別和...