СДЕЛАЙТЕ СВОИ УРОКИ ЕЩЁ ЭФФЕКТИВНЕЕ, А ЖИЗНЬ СВОБОДНЕЕ

Благодаря готовым учебным материалам для работы в классе и дистанционно

Скидки до 50 % на комплекты
только до

Готовые ключевые этапы урока всегда будут у вас под рукой

Организационный момент

Проверка знаний

Объяснение материала

Закрепление изученного

Итоги урока

Тип данных enum в языке С#

Категория: Информатика

Нажмите, чтобы узнать подробности

Данный методический материал содержит презентацию к уроку "Тип данных enum в языке С#". Материал предназначен для подготовки к занятиям по данной теме, а также  для студентов, изучающих язык С# в дисциплинах "Основы алгоритмизации и программирования" и "Прикладное программирование". 

Просмотр содержимого документа
«Тип данных enum в языке С#»

Занятие №62 Тип данных enum: объявление и особенности использования. Операции с перечислениями.

Занятие №62

Тип данных enum: объявление и особенности использования. Операции с перечислениями.

 Перечисление (enum)  — это набор логически связанных констант. Перечисление позволяет задать имена для небольшого набора используемых целочисленных значений. Синтаксис объявления перечисления: модификтор_доступа  enum имя : тип {  имя1 = значение1,  имя2 = значение2, … }  Тип перечисления обязательно должен представлять целочисленный тип (byte, int, short, long). Если тип явным образом не указан, то по умолчанию используется тип int.

Перечисление (enum)  — это набор логически связанных констант. Перечисление позволяет задать имена для небольшого набора используемых целочисленных значений.

Синтаксис объявления перечисления:

модификтор_доступа enum имя : тип

{

имя1 = значение1,

имя2 = значение2,

}

Тип перечисления обязательно должен представлять целочисленный тип (byte, int, short, long). Если тип явным образом не указан, то по умолчанию используется тип int.

Пример: enum Days {      Monday,      Tuesday,      Wednesday,      Thursday,      Friday,      Saturday,      Sunday }  Каждому элементу перечисления присваивается целочисленное значение, причем первый элемент будет иметь значение 0, второй - 1 и так далее. Мы можем также явным образом указать значения элементов, либо указав значение первого элемента:

Пример:

enum Days

{

     Monday,

     Tuesday,

     Wednesday,

     Thursday,

     Friday,

     Saturday,

     Sunday

}

Каждому элементу перечисления присваивается целочисленное значение, причем первый элемент будет иметь значение 0, второй - 1 и так далее. Мы можем также явным образом указать значения элементов, либо указав значение первого элемента:

enum Operation {      Add = 1,   // каждый следующий элемент по умолчанию //увеличивается на единицу      Subtract, // этот элемент равен 2      Multiply, // равен 3      Divide    // равен 4 }  Можно и для всех элементов явным образом указать значения: enum Operation {      Add = 2,      Subtract = 4,

enum Operation

{

     Add = 1,   // каждый следующий элемент по умолчанию //увеличивается на единицу

     Subtract, // этот элемент равен 2

     Multiply, // равен 3

     Divide    // равен 4

}

Можно и для всех элементов явным образом указать значения:

enum Operation

{

     Add = 2,

     Subtract = 4,

Multiply = 8,      Divide = 16 }  Константы перечисления могут иметь одинаковые значения, либо даже можно присваивать одной константе значение другой константы: enum Color {      White = 1,      Black = 2,      Green = 2,      Blue = White // Blue = 1 }  Каждое перечисление фактически определяет новый тип данных. Затем в программе мы можем определить переменную этого типа и использовать ее:

Multiply = 8,

     Divide = 16

}

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

enum Color

{

     White = 1,

     Black = 2,

     Green = 2,

     Blue = White // Blue = 1

}

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

enum Operation      {          Add = 1,          Subtract,          Multiply,          Divide      } class Program {      static void Main(string[] args)      {          Operation op;          op = Operation.Add;          Console.WriteLine(op); // Add                    Console.ReadLine();      }  }

enum Operation

     {

         Add = 1,

         Subtract,

         Multiply,

         Divide

     }

class Program

{

     static void Main(string[] args)

     {

         Operation op;

         op = Operation.Add;

         Console.WriteLine(op); // Add

         

         Console.ReadLine();

     } 

}

 В программе можно присвоить значение этой переменной. При этом в качестве ее значения должна выступать одна из констант, определенных в данном перечислении. То есть несмотря на то, что каждая константа сопоставляется с определенным числом, мы не можем присвоить ей числовое значение, например, Operation op = 1;. И также если мы будем выводить на консоль значение этой переменной, то мы получим имя константы, а не числовое значение. Если же необходимо получить числовое значение, то следует выполнить приведение к числовому типу: Operation op; op = Operation.Multiply; Console.WriteLine((int)op); // 3

В программе можно присвоить значение этой переменной. При этом в качестве ее значения должна выступать одна из констант, определенных в данном перечислении. То есть несмотря на то, что каждая константа сопоставляется с определенным числом, мы не можем присвоить ей числовое значение, например, Operation op = 1;. И также если мы будем выводить на консоль значение этой переменной, то мы получим имя константы, а не числовое значение. Если же необходимо получить числовое значение, то следует выполнить приведение к числовому типу:

Operation op;

op = Operation.Multiply;

Console.WriteLine((int)op); // 3

 Перечисление необязательно определять внутри класса, можно и вне класса, но в пределах пространства имен. enum Operation {      Add = 1,      Subtract,      Multiply,      Divide } class Program {         static void Main(string[] args)      {          Operation op;          op = Operation.Add;          Console.WriteLine(op); // Add                    Console.ReadLine();      }   }

Перечисление необязательно определять внутри класса, можно и вне класса, но в пределах пространства имен.

enum Operation

{

     Add = 1,

     Subtract,

     Multiply,

     Divide

}

class Program

{   

     static void Main(string[] args)

     {

         Operation op;

         op = Operation.Add;

         Console.WriteLine(op); // Add

         

         Console.ReadLine();

     } 

}

 Часто переменная перечисления выступает в качестве хранилища состояния, в зависимости от которого производятся некоторые действия. Например: class Program {      enum Operation      {          Add = 1,          Subtract,          Multiply,          Divide      }

Часто переменная перечисления выступает в качестве хранилища состояния, в зависимости от которого производятся некоторые действия.

Например:

class Program

{

     enum Operation

     {

         Add = 1,

         Subtract,

         Multiply,

         Divide

     }

static void MathOp(double x, double y, Operation op)      {          double result = 0.0;          switch (op)          {              case Operation.Add:                  result = x + y;                  break;              case Operation.Subtract:                  result = x - y;                  break;              case Operation.Multiply:                  result = x * y;                  break;              case Operation.Divide:                  result = x / y;                  break;          }

static void MathOp(double x, double y, Operation op)

     {

         double result = 0.0;

         switch (op)

         {

             case Operation.Add:

                 result = x + y;

                 break;

             case Operation.Subtract:

                 result = x - y;

                 break;

             case Operation.Multiply:

                 result = x * y;

                 break;

             case Operation.Divide:

                 result = x / y;

                 break;

         }

Console.WriteLine(

Console.WriteLine(" Результат операции равен {0}", result);

     }

     static void Main(string[] args)

     {

         // Тип операции задаем с помощью константы Operation.Add, которая равна 1

         MathOp(10, 5, Operation.Add);

         // Тип операции задаем с помощью константы Operation.Multiply, которая равна 3

         MathOp(11, 5, Operation.Multiply);   

         Console.ReadLine();

     } 

}

Здесь имеется перечисление Operation, которое представляет арифметические операции. Также определен метод MathOp, который в качестве параметров принимает два числа и тип операции.

 В основном методе Main два раза вызывается процедура MathOp и в нее передаются два числа и тип операции.

В основном методе Main два раза вызывается процедура MathOp и в нее передаются два числа и тип операции.