如何在VB.NET中将整数作为无符号参数传递?

6

我在我的VB.NET代码中使用了一个库调用setInstance(ByVal instance As UInteger)。我需要传递的参数是一个Integer。我需要做些什么来将整数参数转换为无符号整数?这个数字保证是正数且小于10。

3个回答

7

Like so...

Dim MyInt As Int32 = 10
Dim MyUInt As UInt32 = CUInt(MyInt)
setInstance(MyUInt)

3

CUInt或CType(x, UInt)允许转换为正整数

x为负数时会抛出异常。

要将Int用作Uint,您可以使用一些技巧:

  dim bb() = System.BitConverter.GetBytes(myInt)
  dim MyUint = System.BitConverter.ToUInt32(bb, 0)

对于数组,还可以使用System.Buffer.BlockCopy。

如果您将编译器配置为禁用检查整数溢出(C#的默认设置),则可以使用CUInt来处理负值,而不会进行检查,也不会触发异常。


1
您可以调用CUint将变量转换为UInteger

回答值大于零没问题。但是你尝试过将负整数转换为UInt32(例如-460819684)的CUInt()或DirectCast(value,UInt32)吗?在C#中非常容易,但在VB.Net中完全不直观。 - Bernhard

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接