我宣佈的代碼,像這樣GetHashCode()在不同的服務器上給出不同的結果?
int hashcode = "apple".GetHashCode();
在我的電腦,在工作中計算機C#線,和一個朋友的電腦,結果是1657858284.在開發服務器,結果是1548091822.是否有我告訴項目總是讓GetHashCode()產生1657858284的方式,而不管它在哪個服務器上?
更多注意事項 起初,我注意到版本有所不同... 1657858284結果來自.NET 3.5和.NET 4.0。 1548091822來自.NET 2.0。
我再叫視覺工作室2010年編制項目作爲.NET 2.0的項目,但它還是給了我1657858284.
那麼,電腦之間有什麼區別?不同的.NET版本,也許? – 2011-05-24 18:01:06
[來自MSDN](http://msdn.microsoft.com/en-us/library/system.object.gethashcode.aspx)「.NET Framework不保證GetHashCode方法的默認實現,並且它的值.NET Framework的不同版本之間的返回值是相同的。「 – AbrahamJP 2011-05-24 18:01:58
從我的理解中,GetHashCode僅用作查找關鍵字,例如hashmaps。所以我不確定你可以期待GetHashCode()產生類似的結果。但我相信你可以重寫GetHashCode() – Cilvic 2011-05-24 18:05:10