2
我碰到一些奇怪的VB代碼,當我即將一些VB代碼轉換爲C#:CINT和GetHashCode
totalLinks = table1.Rows(i).Item("qty").GetHashCode) * CInt(table2.Rows(i).Item("numOfLinks").GetHashCode + 1)
(業務邏輯應在總的聯繫越來越=數量* numOfLinks)。
table1是一個Datatable,而數量& numOfLinks是它的兩列。
問題1:我們可以通過將'CInt'應用於上面的哈希碼來得到一個整數嗎?
問題2:讓hashcode加1然後轉換爲像上面那樣的整數意味着什麼? (應該先轉換爲整數然後再加1?或者我實際上誤解了代碼?)
我不知道如何將其轉換爲C#,然後才明白其含義。謝謝!
感謝您的回答,這是有道理的吧! – DennisL
我看到GetHashCode會將哈希碼轉換爲對象的MSDN,請問爲什麼沒有哈希值?該列不是一個對象? – DennisL
數據庫列類型幾乎肯定是一個整數(您可以檢查列的類型),所以當從數據庫中檢索值時,它將存儲爲System.Int32,實際上它不是一個對象,這就是爲什麼代碼一直工作。如果它是一個實際的對象(例如字符串),那麼你會有一些非常奇怪和不正確的乘法值。 –