是否有在VB.NET中执行不安全算法的实用方法?

时间:2015-07-15 17:07:07

标签: .net vb.net hash unsafe

我正在重写哈希码。有一点

OverflowException

导致Hash = addUnsafe(multiplyUnsafe(1210600964, 31), -837896230) 。有没有我可以使用的方法,如:

dllimports

无需将我的项目链接到另一个程序集?我不想删除溢出检查。 $sql1 = "SELECT * FROM ( SELECT wp_posts.ID, wp_posts.post_title, wp_posts.post_type, wp_posts.post_status, wp_postmeta.meta_value FROM wp_posts, wp_postmeta WHERE wp_posts.ID=wp_postmeta.post_ID AND post_type='banners' AND post_status='publish' AND meta_key='uselink' AND meta_value='http://www.mylink.com/subpage/') AS a INNER JOIN ( SELECT meta_value, MIN( post_id ) AS min_id FROM wp_postmeta GROUP BY meta_value HAVING COUNT( * ) > 1 ) AS b ON b.meta_value = a.meta_value AND b.min_id <> a.id"; $result1 = $conn->query($sql1); if ($result1->num_rows > 0) { while($row = $result1->fetch_assoc()) { echo $row["meta_value"] . ", "; } } else { echo "0 results"; } 没问题。

1 个答案:

答案 0 :(得分:2)

您可以使用64位数字进行数学运算,然后使用{{1}}来减少多余数据:

{{1}}

尽管可以在一个解决方案中混合使用C#和VB.NET项目,但是在C#中编写一个类来执行未经检查的算术可能是最容易的,即使您并不热衷于添加对另一个程序集的引用。 / p>

在C#中编写函数也是一个好主意,这样你就可以测试VB函数是否返回了预期的值。这就是我检查上面代码所做的。

编辑:Joseph Nields的评论提示我测试性能,结果是使用CLng而不是Convert.ToInt64而且工作得更快。