русс | укр

Мови програмуванняВідео уроки php mysqlПаскальСіАсемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование


Linux Unix Алгоритмічні мови Архітектура мікроконтролерів Введення в розробку розподілених інформаційних систем Дискретна математика Інформаційне обслуговування користувачів Інформація та моделювання в управлінні виробництвом Комп'ютерна графіка Лекції


Перелічення


Дата додавання: 2015-01-08; переглядів: 921.


При написанні програм часто виникає потреба визначити декілька зв'язаних між собою іменованих констант, при цьому їх конкретні значення можуть бути не важливі. Для цього зручно скористатися переліченим типом даних, всі можливі значення якого задаються списком цілочисельних констант, наприклад:

enum Menu { Read, Write, Append, Exit }

enum Веселка { Червоний, Оранжевий, Жовтий, Зелений, Синій, Фіолетовий }

Для кожної константи задається її символічне ім'я. За умовчанням константам привласнюються послідовні значення типу int, починаючи з 0, але можна задати і власні значення, наприклад:

enum Nums { two = 2, three, four, ten = 10, eleven, fifty = ten + 40 };

Константам three і four привласнюються значення 3 і 4, константі eleven - 11. Імена констант усередині кожного перелічення мають бути унікальними, а значення можуть бути різними.

Перевага перелічення перед описом іменованих констант полягає в тому, що зв'язані константи наочніше; крім того, компілятор виконує перевірку типів, а інтегроване середовище розробки підказує можливі значення констант, виводячи їх список.

 

Синтаксис перелічення:

 

[атрибути ] [специфікатори ] enum ім'я _ перелічення [ : базовий_тип ] тіло _ перелічення [ ; ]

 

Специфікатори перелічення мають такий же сенс, як і для класу, причому допускаються тільки специфікатори new, public, protected, internal і private.

Базовий тип - це тип елементів, з яких побудовано перелічення. За умовчанням використовується тип int, але можна задати тип і явним чином, вибравши його серед цілочисельних типів (окрім char), а саме: byte, sbyte, short, ushort, int, uint, long і ulong. Необхідність в цьому виникає, коли значення констант неможливо або незручно представляти за допомогою типу int.

Тіло перелічення складається з імен констант, кожною з яких може бути привласнене значення. Якщо значення не вказане, воно обчислюється збільшенням одиниці до значення попередньої константи. Константи за умовчанням мають специфікатор доступу public.

Перелічення часто використовуються як вкладені типи, ідентифікуючи значення з якого-небудь обмеженого набору. Приклад такого перелічення приведений в лістингу 9.10.

 

 

Лістинг 9.10. Приклад перелічення

 

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

 

namespace examp64

{

struct Боец

{

public enum Воинское_Звание

{ Рядовой, Сержант, Лейтенант, Майор, Полковник, Генерал }

 

public string Фамилия;

public Воинское_Звание Звание;

}

 

class Program

{

static void Main(string[] args)

{

Боец x;

x.Фамилия = " Иванов ";

x.Звание = Боец.Воинское_Звание.Сержант;

Console.WriteLine(x.Звание + " " + x.Фамилия);

}

}

}

Результат роботи програми: Сержант Іванов

Перелічення зручно використовувати для представлення бітових прапорів, наприклад:

 

enum Flags : byte

{

b0, b1. b2, b3 = 0x04, b4 = 0x08, b5 = 0x10, b6 = 0x20, b7 = 0x40

}

 


<== попередня лекція | наступна лекція ==>
Строго кажучи, будь-який значущий тип С# є структурним. | Операції з переліченнями


Онлайн система числення Калькулятор онлайн звичайний Науковий калькулятор онлайн