Я использую библиотечный вызов setInstance(ByVal instance As UInteger) в моем VB.NET код. Мне нужно передать параметр Integer. Что мне нужно сделать, чтобы преобразовать целочисленный параметр в беззнаковое целое число? Число гарантированно положительное и меньше 10.

6
CodeFusionMobile 16 Июл 2010 в 20:28

3 ответа

Лучший ответ

Вот так...

Dim MyInt As Int32 = 10
Dim MyUInt As UInt32 = CUInt(MyInt)
setInstance(MyUInt)
7
Carter Medlin 16 Июл 2010 в 20:44

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 с отрицательными значениями без проверки - не исключение.

3
Peter Mortensen 20 Май 2016 в 00:45

Вы можете вызвать CUint, чтобы преобразовать переменную в UInteger.

1
SLaks 16 Июл 2010 в 20:33
В качестве ответа на значения выше нуля ок. Но пробовали ли вы использовать CUInt () или DirectCast (value, UInt32) как отрицательное целое число для UInt32 (например, -460819684)? Очень просто на C #, но совершенно не интуитивно понятен VB.Net.
 – 
Bernhard
13 Апр 2018 в 09:48