Перечисления (enum)

Перечисление – определяемый пользователем целочисленный тип, который позволяет задавать набор допустимых значений, и назначить каждому понятное имя. Для объявления перечисления используется ключевое слово enum (от англ. enumeration).
Преимущества перечислений:
— гарантия того, что переменным будут назначаться допустимые значения из указанного набора;
— код становится читабельнее, когда в нем присутствуют понятные имена, а не числа;
— в Visual Studio благодаря средству IntelliSense будет выпадать список с допустимыми значениями типа, что позволит сэкономить время и напомнить, какие значения можно использовать.
Перечисления широко используются в самой библиотеке классов .NET. Например, при создании файлового потока (FileStream) используется перечисление FileAccess, при помощи которого мы указываем с каким режимом доступа открыть файл (чтение/запись).


Общая структура объявления перечисления:
enum [имя_перечисления] { [имя1], [имя2], … };
Создадим перечисление S, которое будет соответствовать четырем сторонам света:
 enum S {север, востокt, юг, запад};
В таком перечислении каждой символически обозначаемой константе присваивается цело число, начиная с 0 (север = 0, восток = 1 …).
Чтобы получить целое значение определенного элемента перечисления, достаточно этот элемент явно привести к целому типу:
Console.WriteLine((int) S.юг);  //  ответ 2
По умолчанию в качестве целого типа для enum используется int. Этот тип можно изменить на любой другой целый тип (кроме char), указав после имени перечисления необходимый тип и разделив двоеточием:
enum Sides : byte {север, восток, юг, запад};

Пример программы с использованием перечисления:

using System;
namespace ПоискКлада
{
   enum S { север, восток, юг, запад };
   class Program
   {
      public static void GoTo(S side, int way)
      {
         switch (side)
         {
         case S.север:
             Console.WriteLine("Идти на север, {0} метров", way);
             break;
         case S.восток:
             Console.WriteLine("Идти на восток, {0} метров", way);
             break;
         case S.юг:
             Console.WriteLine("Идти на юг, {0} метров", way);
             break;
         case S.запад:
             Console.WriteLine("Идти на запад, {0} метров", way);
             break;
         }
      }
      static void Main(string[] args)
      {
         GoTo(S.восток, 50);
         GoTo(S.юг, 20);
         GoTo(S.запад, 30);
         Console.WriteLine("Выкопай клад!");
         Console.ReadKey();
      }
   }
}


NEW: Наш Чат, в котором вы можете обсудить любые вопросы, идеи, поделиться опытом или связаться с администраторами.


Помощь проекту:

Понравилась статья? Поделиться с друзьями:
0 0 голоса
Рейтинг статьи
Подписаться
Уведомить о
0 комментариев
Межтекстовые Отзывы
Посмотреть все комментарии
0
Оставьте комментарий! Напишите, что думаете по поводу статьи.x
()
x