Перечисления

Содержание

Слайд 2

Перечисления – это способ задания набора именованных констант, который можно назначить переменной

Перечисления – это способ задания набора именованных констант, который можно назначить переменной
enum Days { Sunday, Monday, Tuesday, Wednesday, Thursday, Friday, Saturday }
enum Months : byte { Jan, Feb, Mar, Apr, May, Jun, Jul, Aug, Sep, Oct, Nov, Dec };

Объявление переменной типа перечисление:
Days d;
Months m
Обращение к конкретным параметрам
Days.Sunday,
Months.Feb

По умолчанию базовым типом каждого элемента перечисления является int

перечислители

enum Days { Sat = 1, Sun, Mon, Tue, Wed, Thu, Fri };

Слайд 3

Для перечисления утверждены
следующие типы:
byte,
sbyte,
short,
ushort,
int,
uint,
long
ulong.

Для перечисления утверждены следующие типы: byte, sbyte, short, ushort, int, uint, long

Имя перечислителя не может содержать пробелов.

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

int x = (int)Days.Sun;

Слайд 4

Пример 1. В этом примере объявляется перечисление Days. Два перечислителя явно преобразуются

Пример 1. В этом примере объявляется перечисление Days. Два перечислителя явно преобразуются
в целые числа и назначаются целочисленным переменным.

public class EnumTest
{
enum Days { Sun, Mon, Tue, Wed, Thu, Fri, Sat };
static void Main()
{
int x = (int)Days.Sun; int y = (int)Days.Fri;
Console.WriteLine("Sun = {0}", x); Console.WriteLine("Fri = {0}", y);
}
}
/* Результат:
Sun = 0
Fri = 5
*/

Слайд 5

Пример 2. В данном примере для объявления enum, члены которого имеют тип

Пример 2. В данном примере для объявления enum, члены которого имеют тип
long, используется параметр базового типа.

public class EnumTest2
{
enum Range : long { Max = 2147483648L, Min = 255L };
static void Main()
{
long x = (long)Range.Max; long y = (long)Range.Min;
Console.WriteLine("Max = {0}", x);
Console.WriteLine("Min = {0}", y);
}
}
/* Результат:
Max = 2147483648
Min = 255
*/

Слайд 6

Пример 3. Пример программы, в которой перечисление используется в операторе switch,

using

Пример 3. Пример программы, в которой перечисление используется в операторе switch, using
System;
namespace app19_enum
{
class Program
{
public enum DaysOfWeek // Объявление типа "перечисление"
{
Monday = 0, Tuesday = 1, Wednesday = 2,
Thursday = 3, Friday = 4,
Saturday = 5,
Sunday = 6
}
static void Main()
{
WriteText(DaysOfWeek.Sunday); // Задание значения
// параметра
Console.ReadLine();
}

Слайд 7

static void WriteText(DaysOfWeek days)
{
switch (days) // Обработка значений переменной

static void WriteText(DaysOfWeek days) { switch (days) // Обработка значений переменной days
days
{
case DaysOfWeek.Monday: Console.WriteLine("Понедельник");
break;
case DaysOfWeek.Tuesday: Console.WriteLine("Вторник");
break;
case DaysOfWeek.Wednesday: Console.WriteLine("Среда!");
break;
case DaysOfWeek.Thursday: Console.WriteLine("Четверг");
break;
case DaysOfWeek.Friday: Console.WriteLine("Пятница");
break;
case DaysOfWeek.Saturday: Console.WriteLine("Суббота");
break;
case DaysOfWeek.Sunday: Console.WriteLine("Завтра — понедельник");
break;
}
}

Слайд 8

using System;
namespace ConsoleApp
{
class Program
{
enum TrafficLight
{
Red,
Yellow,
Green

using System; namespace ConsoleApp { class Program { enum TrafficLight { Red,
}
static void Main(string[] args)
{
var t = TrafficLight.Green;
Console.WriteLine(t);
Console.ReadLine();
}
}
}

Слайд 9

Типы перечислений как битовые флаги

бит, отражающий некоторое состояние, называют флагом

using System;
namespace

Типы перечислений как битовые флаги бит, отражающий некоторое состояние, называют флагом using
app20_flags
{
class Program
{
[Flags()]
public enum MilitaryType // Тип используемого
// вооружения
{
Marine = 1,
Land = 2,
Cosmic = 4,
AllType = Marine | Land | Cosmic
}
Имя файла: Перечисления.pptx
Количество просмотров: 20
Количество скачиваний: 0