У меня есть функция, которая должна принимать UInt
в качестве параметра.I'm using the .Net Micro Framework
В качестве простого примера я хотел бы сделать что-то вроде:
Dim x As UInteger
For x = 0 To 100
Port.SetDutyCycle(x)
Thread.Sleep(10)
Next
For x = 100 To 0 Step -1
Port.SetDutyCycle(x)
Thread.Sleep(10)
Next
Второй For
не скомпилируется, так как -1
не может быть представленкак UInt.Итак, затем я попытался ...
For y As UInteger = 0 To 100
Port.SetDutyCycle(100 - y)
Thread.Sleep(10)
Next
Это не скомпилируется, поскольку - y
вызывает преобразование в Long, которое затем не может быть сужено до UInt.Следующая попытка:
Port.SetDutyCycle(DirectCast(100 - y, UInteger))
100 - y
не скомпилируется, поскольку «Значение типа« Integer »не может быть преобразовано в« UInteger »»
Итак ... Как я могу легкополучить UInteger, который уменьшается от 100 до 0 в цикле?
Согласно ответу Ханса Пассанта, второй блок кода отлично работает в vanilla .Net