2015-04-27 32 views
-1

我對Java有點經驗,但對C#不太熟悉,我想澄清一些關於C#的疑問。關於Java和C#之間區別的幾個問題#

  1. C#中是否有任何基類或接口像'對象'?

  2. 確實'=='運算符在C#中的意思是「==」在Java?或「等於()」在Java?如果C#中的'=='不意味着在java中的「equals()」,我怎麼能覆蓋C#中的equals()?

  3. 在C#字典中的鍵是否應該像Java HashMap一樣是不可變的? 那麼「hashcode()」呢?有沒有類似的C#?

  4. 在C#中兩個不同的String之間的'+'運算符是否像java一樣低效?

+3

你甚至試圖研究任何東西嗎? – Mephy

+1

1)是,'System.Object'。但請注意,值類型(仍然來自'Object')與java不同。 2)也沒有。你可以重載它。 3)你可以像其他虛擬方法一樣覆蓋'Equals' 4)'Equals'和'GetHashCode'必須一致地實現,並且不應該在對象被用作關鍵字時改變。不變性是實現這一點的簡單方法,但不是絕對必要的。 5)是的,它創建一個新的字符串複製舊的字符串。 – CodesInChaos

+0

謝謝你的迴應,這會幫助我很多〜 – BinaryProbe

回答

0

我認爲「==」表示對象被引用到機器中的相同地址。而equals()表示對象的值是相同的。