c#涓璯ethashcode鏂规硶鎬庝箞瀹炵幇
鍦–#涓紝GetHashCode()鏂规硶鏄敤浜庤幏鍙栧璞$殑鍝堝笇鐮佺殑鏂规硶銆傚搱甯岀爜鍙互鐢ㄤ簬蹇€熸煡鎵惧璞★紝閫氳繃鍦ㄥ搱甯岃〃涓瓨鍌ㄥ璞$殑鍝堝笇鐮佹潵瀹炵幇蹇€熸煡鎵俱€?/p>
鍦–#涓紝鍙互閲嶅啓鍩虹被Object涓殑GetHashCode()鏂规硶鏉ヨ嚜瀹氫箟瀵硅薄鐨勫搱甯岀爜鐢熸垚閫昏緫銆傞€氬父锛屽彲浠ュ皢瀵硅薄涓殑瀛楁杩涜娣峰悎杩愮畻鐢熸垚鍝堝笇鐮侊紝纭繚涓嶅悓瀵硅薄鏈変笉鍚岀殑鍝堝笇鐮併€?/p>
浠ヤ笅鏄竴涓畝鍗曠殑绀轰緥锛屾紨绀哄浣曢噸鍐橤etHashCode()鏂规硶锛?/p>
public class Person
{
public string Name { get; set; }
public int Age { get; set; }
public override int GetHashCode()
{
unchecked
{
int hash = 17;
hash = hash * 23 + Name.GetHashCode();
hash = hash * 23 + Age.GetHashCode();
return hash;
}
}
}
鍦ㄨ繖涓ず渚嬩腑锛孭erson绫婚噸鍐欎簡GetHashCode()鏂规硶锛屽皢Name鍜孉ge灞炴€х殑鍝堝笇鐮佽繘琛屾贩鍚堣繍绠楀緱鍒版渶缁堢殑鍝堝笇鐮併€傞€氳繃閲嶅啓GetHashCode()鏂规硶锛屽彲浠ョ‘淇濈浉鍚屽睘鎬х殑涓嶅悓瀵硅薄鍏锋湁涓嶅悓鐨勫搱甯岀爜锛屾彁楂樺搱甯岃〃鐨勬煡鎵炬晥鐜囥€?/p>
相关问答