Объявления перечисления C#
Перечисление состоит из набора именованных констант целого числа.Объявление типа перечисления (необязательный) выдает имя тега перечисления и определяет набор именованных идентификаторов целого числа (вызываемых "набор перечисления", "константы перечислителя", "перечислители" или "участники").Переменная с типом перечисления хранит одно из значений набора перечисления, определенного этим типом.
Переменные enum тип можно использовать в выражениях индексирования и в качестве операндов всех арифметические и реляционных операторов.Перечисления представляют собой альтернативу #define директива препроцессора с преимуществами, что значения можно создавать и повиноваться обычным правилам области.
В ANSI c выражения, которые определяют значение константы перечислителя всегда имеют int тип; таким образом, хранилище, связанное с переменной перечисления хранилища требуется для одного int значения.Константу перечисления или перечисляемого типа можно использовать язык c разрешает выражение целого числа.
Синтаксис
enum-описатель.
перечисления ИдентификаторOpt**{** список перечислителей }перечисления Идентификатор
Необязательно Идентификатор имена тип перечисления, заданный by список перечислителей.Этот идентификатор часто называется "тег" перечисления, указанного в списке.Описатель типа формы
enum identifier { enumerator-list }
объявляет Идентификатор быть тегом перечисления определенного список перечислителей нетерминально.список перечислителей определяет перечислителя "содержимое". список перечислителей описаны подробно описаны ниже.
Если объявление тега отображается, то последующие объявления, использующих тега, но снимают список перечислителей укажите ранее объявленного перечислимый тип.Тег должен относиться к определенному типу перечисления, но этот тип перечисления должен находиться в текущей области.Поскольку тип перечисления определен в другом месте, список перечислителей не отображается в это объявление.Объявления типов, унаследованных из перечислений и typedef объявления для типов перечисления могут использовать тега перечисления, прежде чем тип перечисления определен.
Синтаксис
список перечислителей.
перечислительсписок перечислителей**"** enumerator
enumerator:
перечисление-константаперечисление-константа = константное выражение
перечисление-константа.
identifier
Каждое перечисление-константа в перечисление-список имена значение наборов перечисления.По умолчанию первое перечисление-константа связывает со значением 0.Следующее перечисление-константа в списке связывает со значением ( константное выражение + 1), если явно не будет связать его с другим значением.Имя перечисление-константа выражение значения.
Можно использовать перечисление-константа = константа-выражение переопределение по умолчанию последовательность значений.Таким образом, если перечисление-константа = константа-выражение отображаемое в строке список перечислителей" перечисление-константа связывает со значением заданной by константное выражение. Константное выражение having int введите и могут быть отрицательными.
Следующие правила применяются к элементам набора перечисления:
Набор перечисления может содержать повторяющиеся значения констант.Например, можно связать значение возможно с именем 0 с различными идентификаторами, 2 null и zeroв одном наборе.
Идентификаторы в списке перечисления должны быть определены из других идентификаторов в той же области с такой же видимостью, включая обычные имена переменных и идентификаторы в других списках перечисления.
Теги перечисления подчиняются обычным правилам области.Они должны быть определены из других перечисления, структуры и объединения тегов с той же видимостью.
Примеры
Эти примеры иллюстрируют объявления перечисления:
enum DAY /* Defines an enumeration type */
{
saturday, /* Names day and declares a */
sunday = 0, /* variable named workday with */
monday, /* that type */
tuesday,
wednesday, /* wednesday is associated with 3 */
thursday,
friday
} workday;
Значение, связанное с 0 saturday по умолчанию.Идентификатор sunday явно заданы до 0.Получатель остальным идентификаторам значения от 1 до 5 по умолчанию.
В этом примере значение из набора DAY присвоит переменной today.
enum DAY today = wednesday;
Обратите внимание, что имя константы перечисления используется для присвоения значения.с DAY тип перечисления ранее был объявлен только тег перечисления DAY требуются.
Чтобы явно присвоить целое значение переменной типа перечислимые данных используется приведение типов:
workday = ( enum DAY ) ( day_value - 1 );
Привоженное это рекомендовано в c#, но не требуется.
enum BOOLEAN /* Declares an enumeration data type called BOOLEAN */
{
false, /* false = 0, true = 1 */
true
};
enum BOOLEAN end_flag, match_flag; /* Two variables of type BOOLEAN */
Это объявление также могут быть указаны как
enum BOOLEAN { false, true } end_flag, match_flag;\
как
enum BOOLEAN { false, true } end_flag;
enum BOOLEAN match_flag;
Пример, который использует возможности этих переменных должна выглядеть следующим образом:
if ( match_flag == false )
{
.
. /* statement */
.
}
end_flag = true;
Неименованные типы данных перечислителя также могут быть объявлены.Имя типа данных не указано, но переменные могут быть объявлены.Переменная response переменная указанного типа.
enum { yes, no } response;