Я должен использовать это перечисление в своем приложении C#, но оно не позволит мне использовать эти значения. Когда я указываю тип как uint, я могу использовать это-1 значение, и когда я указываю интервал, я не могу использовать последние 2 значения. Существует ли способ использовать ключевое слово непроверенное здесь, чтобы позволить мне определять все эти значения? Эти значения прибывают из внешнего источника, таким образом, я не могу изменить их.
internal enum MyValues : int
{
value1 = -1,
value2 = 0,
value3 = 0x80000000,
value4 = 0xFFFFFFFF
}
Если вы хотите, чтобы -1
отличалось от 0xFFFFFFFF
, вам понадобится тип данных больше 32 бит. Попробуйте long
.
Один из способов решения этой проблемы - использовать обычные значения для enum
(0, 1, 2, 3), и создать класс или пару методов для преобразования входящих значений в члены enum
и наоборот.
Поскольку эти значения кажутся постоянными, просто создайте статический класс для хранения значений. Кроме того, вы можете использовать любые типы, которые захотите:
public static class MyValues
{
public const int value1 = -1;
public const int value2= 0;
public const int value3 = 0x80000000;
public const int value4 = 0xFFFFFFFF;
}