000123. Блочные конструкции. Перечисления
Блочные конструкции. Перечисления||wmysterio|wmysterio|[email protected]|||Всем привет! Мы немного уйдёт от темы скриптинга GTA 4 и немного поговорим о c# как язык программирования. Этот урок я хотел бы посвятить перечислениям. Они же enum. Эта конструкция являет собой сборку данных, как правило одного типа. Объявляются они следующим образом:
enum День {
/
строки перечисления
/
}
|
Каждый элемент может иметь своё значение, причём тип данных не указывается. Мы можем хранить строку одного типа, а другая может быть вовсе другой. Между этими строками ставится запятая. Вот неплохой пример:
enum День {
Понедельник = 0,
Вторник = 1,
Среда = 2,
Четверг = 3,
Пятница = 4,
Суббота = 5,
Восресенье = 6
} |
Обращение к элементам перечисления такое же, как и у структуры:
День.Пятница
|
Но главное отличие от структуры в том, что мы можем явно указывать значение в конструкции, но не можем этого сделать в теле программы. Это можно сравнить с константами - мы жестко закрепляем значение перечисления в блоке и можем только прочитать данные, что в нём находятся. Ещё отличается перечисление от структуры тем, что мы можем указывать в качестве значения только следующие типы данных:
byte, sbyte, short, ushort, int, uint, long или ulong
|
То есть нельзя указать класс, структуру, массив или ещё какой-то тип данных, но для этого перечисления не созданы. Возникает вопрос - "Как распознать перечисление от той же структуры?" Распознать очень легко. Если вы пользуетесь редакторами типа Visual Studio, то это не составит труда. Как правило обозначаются перечисления следующим значком:
Каким-же образом получить данные? Так как Enum вмещает произвольные данные, то нам необходимо преобразовать значение под нужный тип. Делается это по следующей формуле:

Тип Переменная = (Тип)Выражение;
|
В нашем случаи это так:
int i = (int)День.Вторник;
|
Выражение в скобках указывает в кокой тип данных будет идти преобразо вание. После скобки ")" указываем что конкретно мы будем преобразовать. Такое преобразование следует делать только в том случаи, если вы наверняка знаете какой тип находится в поле перечисления
Важно! Как правило имя перечисления и его поля задают латинскими символами. У меня получилось скомпилировать код с кирилицей, но всё же лучше перестраховаться.|496|1|0|39559150
png
19`20||blochnye_konstrukcii_perechislenija|1392798790