当我要将一些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#。谢谢!
答案 0 :(得分:4)
有人不知道他们用这个代码做了什么,但幸运的是它运作了。
GetHashCode碰巧返回Integer变量的基础值,因为实际上没有什么要哈希。
因此,您可以(应该)简单地忽略GetHashCode代码并将代码转换为
totalLinks = CInt(table1.Rows(i).Item("qty")) * (CInt(table2.Rows(i).Item("numOfLinks")) + 1)