всем привет, имеется следующий пример:
class Program
{
static void Main()
{
// Enum.GetValues() - возвращает экземпляр System.Array, при этом каждому элементу массива
// будет соответствовать член указанного перечисления.
// Помещаем в массив элементы перечисления.
Array array = Enum.GetValues(typeof(EnumType));
// Получаем информацию о количестве элементов в массиве.
Console.WriteLine("Это перечисление содержит {0} членов \n", array.Length);
// Вывод на экран всех элементов перечисления
for (int i = 0; i < array.Length; i++)
{
Console.WriteLine("Имя константы: {0}, значение {0:D}", array.GetValue(i));
}
// Delay.
Console.ReadKey();
}
}
вот само перечисление:
enum EnumType
{
Zero, // = 0
One = 1,
one = One,
Two = 2,
Three, // = 3
Four, // = 4
Five = 5,
//Six,
Seven,
Eight = 8,
Nine,
Ten = 10,
Infinite = 255
}
у меня вопрос по поводу цикла
// Вывод на экран всех элементов перечисления
for (int i = 0; i < array.Length; i++)
{
Console.WriteLine("Имя константы: {0}, значение {0:D}", array.GetValue(i));
}
В переменной arrray типа Array содержится все элементы перечисления EnumType, которые представленны в виде таблицы как и любой другой массив, а метод GetValue по i-му номеру вытягивает данные о элементе массива констант записанного в переменную array.
Так вот, этот массив создается как одномерный или как двумерный — т.к константа перечисления состоит из имени и значения?
Здравствуйте, BadCats, Вы писали:
BC>Так вот, этот массив создается как одномерный или как двумерный — т.к константа перечисления состоит из имени и значения?
Одномерный, элементы массива — сами значения enum. Легко проверить под отладчиком.
Также см
http://stackoverflow.com/a/1398668/318263
UPD. Это в какой книжке такой забавный пример предлагают? Особенно с Seven и с one некрасиво вышло. Хотя Infinite тож ничего.
Здравствуйте, Sinix, Вы писали:
S>Здравствуйте, BadCats, Вы писали:
BC>>Так вот, этот массив создается как одномерный или как двумерный — т.к константа перечисления состоит из имени и значения?
S>Одномерный, элементы массива — сами значения enum. Легко проверить под отладчиком.
S>Также см http://stackoverflow.com/a/1398668/318263
S>
S>UPD. Это в какой книжке такой забавный пример предлагают? Особенно с Seven и с one некрасиво вышло. Хотя Infinite тож ничего.
это не книжка, это курс с сайта itvdn.com — курс c# Essebtial , урок № 8
Здравствуйте, BadCats, Вы писали:
BC>это не книжка, это курс с сайта itvdn.com — курс c# Essebtial , урок № 8
Вы повнимательней с этим курсом тогда. Так, как оно расписано в примере, не делает никто и никогда. Именно по этой причине: очень легко накосячить и не заметить
Или прописываем значения для всех элементов у enum, или ни у одного.
* исключения — всякие Default = OtherValue, но они всегда в конце записываются.
Здравствуйте, Sinix, Вы писали:
S>Вы повнимательней с этим курсом тогда. Так, как оно расписано в примере, не делает никто и никогда. Именно по этой причине: очень легко накосячить и не заметить
Думаю они там демонстрируют логику задания значений элементам энума.