Тип данных UInteger содержит любое значение от 0 до 4 294 967 295 (ссылка MSDN ).
Если я попробую этот код в VB.NET, я получу ошибку компилятора:
Dim Test As UInteger = &HFFFFFFFF
Ошибка: «Выражение константы не представлено в типе« UInteger ».
Почему я не могу установить 0xFFFFFFFF (4,294,967,295) в UInteger, если этот тип может содержать это значение?
Я полагаю, это потому, что литерал &HFFFFFFFF
интерпретируется компилятором VB.NET как Integer
, и это значение для Integer
— отрицательное число (-1), которое, очевидно, нельзя привести к UIInteger
.
Эту проблему легко решить, написав &HFFFFFFFFUI
, добавив суффикс UI
, чтобы рассматривать литерал как UIInteger
.
Вы можете использовать константу MaxValue:
Dim Test As UInteger = UInteger.MaxValue