Почему назначение 0xFFFFFFFF для UInteger приводит к ошибке в VB. NET?

Тип данных UInteger содержит любое значение от 0 до 4 294 967 295 (ссылка MSDN ).

Если я попробую этот код в VB.NET, я получу ошибку компилятора:

Dim Test As UInteger = &HFFFFFFFF

Ошибка: «Выражение константы не представлено в типе« UInteger ».

Почему я не могу установить 0xFFFFFFFF (4,294,967,295) в UInteger, если этот тип может содержать это значение?

22
задан Peter Mortensen 27 June 2015 в 18:26
поделиться

2 ответа

Я полагаю, это потому, что литерал &HFFFFFFFF интерпретируется компилятором VB.NET как Integer, и это значение для Integer — отрицательное число (-1), которое, очевидно, нельзя привести к UIInteger.

Эту проблему легко решить, написав &HFFFFFFFFUI, добавив суффикс UI, чтобы рассматривать литерал как UIInteger.

28
ответ дан 29 November 2019 в 04:57
поделиться

Вы можете использовать константу MaxValue:

Dim Test As UInteger = UInteger.MaxValue
8
ответ дан 29 November 2019 в 04:57
поделиться
Другие вопросы по тегам:

Похожие вопросы: