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

如何在VB.NET中传递整数作为无符号参数?,vb.net,parameters,unsigned,Vb.net,Parameters,Unsigned,我在代码中使用了一个库调用,setInstance(ByVal instance作为UInteger)。我需要传递的参数是一个整数。要将integer参数转换为无符号整数,我需要做什么?该数字保证为正数且小于10。您可以调用CUint将变量转换为UInteger类似于 Dim MyInt As Int32 = 10 Dim MyUInt As UInt32 = CUInt(MyInt) setInstance(MyUInt) CUInt或CType(x,UInt)允许转换正整数 当x为负时,它

我在代码中使用了一个库调用,
setInstance(ByVal instance作为UInteger)
。我需要传递的参数是一个
整数
。要将integer参数转换为无符号整数,我需要做什么?该数字保证为正数且小于10。

您可以调用
CUint
将变量转换为
UInteger
类似于

Dim MyInt As Int32 = 10
Dim MyUInt As UInt32 = CUInt(MyInt)
setInstance(MyUInt)
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,无需检查-无例外。

作为零以上值的答案ok。但是您是否尝试过将CUInt()或DirectCast(value,UInt32)负整数转换为UInt32(例如-460819684)?在C#中非常简单,但完全不直观的VB.Net。