Вопросы с тегом «enums»

148
Почему литералы перечисления Java не должны иметь параметров общего типа?

Перечисления Java великолепны. Как и дженерики. Конечно, мы все знаем ограничения последнего из-за стирания типа. Но есть одна вещь, которую я не понимаю: почему я не могу создать перечисление вот так: public enum MyEnum<T> { LITERAL1<String>, LITERAL2<Integer>,...

147
В чем преимущество перечисления Java по сравнению с классом с открытыми статическими полями final?

Я очень знаком с C #, но начинаю больше работать на Java. Я ожидал узнать, что перечисления в Java в основном эквивалентны перечислениям в C #, но, очевидно, это не так. Первоначально я был рад узнать, что перечисления Java могут содержать несколько фрагментов данных, что представляется очень...

145
Может ли класс перечисления C ++ иметь методы?

У меня есть класс enum с двумя значениями, и я хочу создать метод, который получает значение и возвращает другое. Я также хочу поддерживать безопасность типов (поэтому я использую класс enum вместо enum). http://www.cplusplus.com/doc/tutorial/other_data_types/ ничего не упоминает о методах. Однако...

143
Преобразовать строку в Enum в Python

Интересно, как правильно преобразовать (десериализовать) строку в класс Python Enum. Похоже, getattr(YourEnumType, str)работает, но я не уверен, достаточно ли это безопасно. Чтобы быть более конкретным, я хотел бы преобразовать 'debug'строку в объект Enum следующим образом: class BuildType(Enum):...

143
Преобразование objective-c typedef в его строковый эквивалент

Предполагая, что у меня есть typedef, объявленный в моем .h файле как таковой: typedef enum { JSON, XML, Atom, RSS } FormatType; Я хотел бы создать функцию, которая преобразует числовое значение typedef в строку. Например, если сообщение [self toString:JSON]было отправлено; он вернет JSON. Функция...

142
Каков размер перечисления в C?

Я создаю набор значений перечисления, но мне нужно, чтобы каждое значение перечисления было шириной 64 бита. Если я правильно помню, enum обычно имеет тот же размер, что и int; но я думал, что где-то читал, что (по крайней мере, в GCC) компилятор может сделать перечисление любой ширины,...

136
Должен ли Enum начинаться с 0 или 1?

Представьте, что я определил следующее Enum: public enum Status : byte { Inactive = 1, Active = 2, } Как лучше всего использовать enum? Должно ли оно начинаться с 1примера, приведенного выше, или начинаться с 0(без явных значений) следующим образом: public enum Status : byte { Inactive, Active }...

136
Перечисления в Javascript с ES6

Я перестраиваю старый Java-проект в Javascript и понял, что в JS нет хорошего способа сделать перечисления. Лучшее, что я могу придумать, это: const Colors = { RED: Symbol("red"), BLUE: Symbol("blue"), GREEN: Symbol("green") }; Object.freeze(Colors); constХранит Colorsот быть переназначены, и...

135
Как получить комбинированный список с привязкой перечисления с пользовательским форматированием строки для значений перечисления?

В посте Enum ToString описан метод для использования пользовательского атрибута, DescriptionAttributeнапример: Enum HowNice { [Description("Really Nice")] ReallyNice, [Description("Kinda Nice")] SortOfNice, [Description("Not Nice At All")] NotNice } А затем вы вызываете функцию GetDescription,...

131
Как перебирать значения Enum с флагами?

Если у меня есть переменная, содержащая перечисление флагов, могу ли я как-то перебрать битовые значения в этой конкретной переменной? Или мне нужно использовать Enum.GetValues ​​для перебора всего перечисления и проверки того, какие из них...

125
Что лучше использовать #define, enum или const?

В проекте C ++, над которым я работаю, у меня есть значение типа флага, которое может иметь четыре значения. Эти четыре флага можно комбинировать. Флаги описывают записи в базе данных и могут быть: новый рекорд удаленная запись измененная запись существующая запись Теперь для каждой записи я хочу...

123
Есть ли простой способ преобразовать перечисление C ++ в строку?

Предположим, у нас есть несколько именованных перечислений: enum MyEnum { FOO, BAR = 0x50 }; Я искал в Google сценарий (на любом языке), который сканирует все заголовки в моем проекте и генерирует заголовок с одной функцией для каждого перечисления. char* enum_to_string(MyEnum t); И реализация...

123
Способы сохранения перечислений в базе данных

Как лучше всего сохранять перечисления в базе данных? Я знаю, что Java предоставляет name()и valueOf()методы для преобразования значений перечисления в String и обратно. Но есть ли другие (гибкие) варианты хранения этих значений? Есть ли умный способ превратить перечисления в уникальные числа (...

123
В Java типы перечисления внутри класса статичны?

Кажется, я не могу получить доступ к членам экземпляра окружающего класса изнутри перечисления, как я мог бы изнутри внутреннего класса. Означает ли это, что перечисления статичны? Есть ли доступ к области видимости экземпляра окружающего класса, или мне нужно передать экземпляр в метод...

123
Почему перечисления флагов обычно определяются с шестнадцатеричными значениями

Я часто вижу объявления перечисления флагов, в которых используются шестнадцатеричные значения. Например: [Flags] public enum MyEnum { None = 0x0, Flag1 = 0x1, Flag2 = 0x2, Flag3 = 0x4, Flag4 = 0x8, Flag5 = 0x10 } Когда я объявляю перечисление, я обычно объявляю его так: [Flags] public enum MyEnum...