русс | укр

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

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


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


Операції з переліченнями


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


Із змінними переліченого типу можна виконувати арифметичні операції ( +, - ++, --), логічні порозрядні операції (*, &, |, ~), порівнювати їх за допомогою операцій відношення (<, < =, >, >= = =, ! = ) і отримувати розмір в байтах (sizeof).

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

 

Приклад:

Flags а = Flags.b2 | Flags.b4;

Console.WriteLine( "а = {0} {0,2:Х}", а );

++а;

Console.WriteLine( "а = {0} {0.2:X}", а );

int х = (int) а;

Console.WriteLine( "x = {0} {0.2:X}", x );

Flags b = (Flags) 65;

Console.WriteLine( "b = {0} {0.2:X}", b );

Результат роботи цього фрагмента програми ( {0,2:х} позначає шістнадцятирічний формат виведення):

 

a = 10 0A

a = 11 0B

x = 11 B

b = 65 41

 

Інший приклад використання операцій з переліченнями приведений в лістингу 9.11.

 

Лістинг 9.11. Операції з переліченнями

 

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.Звание = Боец.Воинское_Звание.Сержант;

for (int i = 1976; i < 2006; i += 5)

{

if (x.Звание < Боец.Воинское_Звание.Генерал) ++x.Звание;

Console.WriteLine("Рік: {0} {1} {2}", i, x.Звание, x.Фамилия);

}

}

}

}

 

Результат роботи програми:

Рік 1976 Лейтенант Иванов

Рік 1981 Майор Иванов

Рік 1986 Полковник Иванов

Рік 1991 Генерал Иванов

Рік 1996 Генерал Иванов

Рік 2001 Генерал Иванов


<== попередня лекція | наступна лекція ==>
Перелічення | Базовий клас System.Enum


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