CInt和GetHashCode

时间:2017-01-22 23:14:14

标签: c# vb.net

当我要将一些VB代码转换为C#时,我遇到了一些奇怪的VB代码:

totalLinks = table1.Rows(i).Item("qty").GetHashCode) *  CInt(table2.Rows(i).Item("numOfLinks").GetHashCode + 1)

(业务逻辑应该是获得链接总数= qty * numOfLinks)。

table1是一个Datatable,而qty& numOfLinks是它的两列。

问题1:我们可以通过将'CInt'应用于上面的哈希码来获得整数吗?

问题2:让hashcode加1然后转换为上面的整数是什么意思? (首先应该转换为整数然后再加1?或者我实际上误解了代码?)

在我完全理解其含义之前,我不知道如何将其转换为C#。谢谢!

1 个答案:

答案 0 :(得分:4)

有人不知道他们用这个代码做了什么,但幸运的是它运作了。

GetHashCode碰巧返回Integer变量的基础值,因为实际上没有什么要哈希。

因此,您可以(应该)简单地忽略GetHashCode代码并将代码转换为

totalLinks = CInt(table1.Rows(i).Item("qty")) * (CInt(table2.Rows(i).Item("numOfLinks")) + 1)