Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.78/92: Рейтинг темы: голосов - 92, средняя оценка - 4.78
Автор FAQ
Автор FAQ
1802 / 614 / 37
Регистрация: 22.12.2009
Сообщений: 1,544
1

enum и Random(Вывод произвольного значения из перечисления)

07.09.2010, 17:39. Показов 18670. Ответов 5
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Здравствуйте! Возник такой вопрос:
есть перечисление, скажем
C#
1
2
    enum Names
     {Максим,Сергей,Андрей,Николай,Инна,Настя,Оля,Катя}
как можно экземпляру этого перечисления присвоить произвольное значение из всех, что имеются в данном перечислении, т.е. дупустим
C#
1
2
Names n;
//теперь произвольным образом выбираем имя из перечисления Names и присваиваем его n
Я думаю можно как то задействовать Random.
Заранее спасибо!
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
07.09.2010, 17:39
Ответы с готовыми решениями:

Вывод значения перечисления enum в консоль в форматированном виде
Как реализовать корректный вывод? Есть namespace Library { public enum Weather { ...

Можно ли с помощью Random выбрать элемент перечисления Enum?
Доброе время суток, у меня возникла такая дилемма можно ли с помощью Random выбрать элемент...

Перечисления enum
Доброго времени суток! Помогите пожалуйста с задачей. Нужно написать программу, которая с...

Размер перечисления enum
Добрый день. Где-то я вычитал, что размер перечисления не всегда может быть одинаковый. Из чего...

5
Padawan
473 / 323 / 30
Регистрация: 30.01.2010
Сообщений: 1,841
07.09.2010, 17:42 2
К элементам перечислимого типа можно обратиться по индексу элемента, который в свою очередь можно быть рандомно сгенерирован.
1
Почетный модератор
Эксперт .NET
8721 / 3673 / 404
Регистрация: 14.06.2010
Сообщений: 4,513
Записей в блоге: 9
07.09.2010, 17:45 3
C#
1
2
3
4
5
6
enum Names : int
{ Максим, Сергей, Андрей, Николай, Инна, Настя, Оля, Катя }
...
Random rnd = new Random();
Names n = (Names)rnd.Next(8);
MessageBox.Show(n.ToString());
1
Автор FAQ
Автор FAQ
1802 / 614 / 37
Регистрация: 22.12.2009
Сообщений: 1,544
07.09.2010, 18:04  [ТС] 4
Спасибо! еще такой вопрос. Как можно определить кол-во элементов перечисления?
0
Почетный модератор
Эксперт .NET
8721 / 3673 / 404
Регистрация: 14.06.2010
Сообщений: 4,513
Записей в блоге: 9
07.09.2010, 18:15 5
А зачем? Ведь ты сам создаешь enum, т.е. ты 100% знаешь сколько там элементов, или для динамики? А так пока как вариант: индекс последнего элемента и есть число элементов.

Почитал, оказывается нельзя, т.к. это не структура и не класс, и не тип данных. Вызывая sizeof(/* enum */), мы получим только размер типа, данного перечислении. Может лучше использовать массив string?

Добавлено через 6 минут
Погорячился...
C#
1
2
int i = Enum.GetNames(typeof(Names)).Length;
MessageBox.Show(i.ToString());
Однако .NET удивил...
1
Автор FAQ
Автор FAQ
1802 / 614 / 37
Регистрация: 22.12.2009
Сообщений: 1,544
07.09.2010, 18:23  [ТС] 6
Спасибо! Да массив конечно лучше) просто интеренсо было попробовтаь сделать это с перечислениями, т.к. ни разу не работал с ними)
C#
1
int i = Enum.GetNames(typeof(Names)).Length;
тоже почти дошел до этого варианта)
0
07.09.2010, 18:23
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
07.09.2010, 18:23
Помогаю со студенческими работами здесь

Вывод значения типа enum C++
Как сделать вывод значения типа enum через printf() ? #include <iostream> #include <conio.h>...

Правильное применение перечисления enum
Дело в том, что не пойму как работать с перечислением. Мне нужно, чтобы программа принимала данные...

Зачем нужны перечисления enum?
Зачем нужны перечисления enum? Почему нельзя просто использовать массив? Объясните в чем плюсы...

Перечисления в C# (как работать с enum)
Здравствуйте, не подскажите как работать с enum. У меня есть строка, содержащая операции и числа, я...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru