Как я использую небезопасные значения в перечислении?

Я должен использовать это перечисление в своем приложении C#, но оно не позволит мне использовать эти значения. Когда я указываю тип как uint, я могу использовать это-1 значение, и когда я указываю интервал, я не могу использовать последние 2 значения. Существует ли способ использовать ключевое слово непроверенное здесь, чтобы позволить мне определять все эти значения? Эти значения прибывают из внешнего источника, таким образом, я не могу изменить их.

internal enum MyValues : int
{
    value1 = -1,
    value2 = 0,
    value3 = 0x80000000,
    value4 = 0xFFFFFFFF
}
7
задан Jon Seigel 12 April 2010 в 17:03
поделиться

4 ответа

Если вы хотите, чтобы -1 отличалось от 0xFFFFFFFF , вам понадобится тип данных больше 32 бит. Попробуйте long .

9
ответ дан 6 December 2019 в 11:47
поделиться

Может, попробовать ulong enums вместо int?

1
ответ дан 6 December 2019 в 11:47
поделиться

Один из способов решения этой проблемы - использовать обычные значения для enum (0, 1, 2, 3), и создать класс или пару методов для преобразования входящих значений в члены enum и наоборот.

2
ответ дан 6 December 2019 в 11:47
поделиться

Поскольку эти значения кажутся постоянными, просто создайте статический класс для хранения значений. Кроме того, вы можете использовать любые типы, которые захотите:

public static class MyValues
{
    public const int value1 = -1;
    public const int value2= 0;
    public const int value3 = 0x80000000;
    public const int value4 = 0xFFFFFFFF;
}
2
ответ дан 6 December 2019 в 11:47
поделиться
Другие вопросы по тегам:

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