程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> C# >> C#入門知識 >> C#和F#重載相等運算符的區別

C#和F#重載相等運算符的區別

編輯:C#入門知識

在C#中 == 和 !=默認是對引用地址作比較,如果要改成對其內涵做比較,則需要重載。一般要重載兩個運算符和兩個函數:  函數Equals、函數GetHashCode、運算符 ==,和運算符 !=  這裡分兩組, 函數Equals、函數GetHashCode,這一組是系統比較對象時候使用,譬如把對象放在Hashtable容器裡面,系統會作出比較,排斥相同的對象。  函數Equals和GetHashCode必須一起重載。    用戶比較兩個對象內涵的時候,不重載==和 !=,直接使用重載的Equals是可以的,但是如果重載使用 == 和 != ,會更直觀。  這一組兩個運算符也必須同時重載,只重載一項的話,編譯器會做出相應提示。   回到F#中,對應C# == 和 != 的是 = 和 <>。試圖重載 = 或<>,編譯器會提示你重載Equals即可。用戶調用運算符 = 和<> 時,會自動調用 Equals。然而重載Equals就必須重載GetHashCode。所以我們重載這一組函數即可。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved