1 | ||||||||||||||||
Какой смысл несет именованный enum?31.08.2011, 10:35. Показов 7520. Ответов 9
Метки нет (Все метки)
Собственно зачем объявлять enum таким образом:
когда можно просто:
Добавлено через 12 минут Всё понял, практически никакого смысла. Единственно только предупреждение компилятор выдаст при попытке в объект s1 типа suit записать целое значение, а не одну из перечисленных констант. Вообщем, делает код трудночитаемым и практически никакой пользы.
2
|
31.08.2011, 10:35 | |
Ответы с готовыми решениями:
9
Смысл запрета на объявление enum в не static классах? Красный свет светофора горит 40 секунд, зелёный - 20, какой объём информации несёт каждый из них Почему ДВССЫЛ на простой именованный диапазон работает, а на динамический именованный не работает? Enum AttributeTargets какой-то особенный? |
31.08.2011, 10:51 | 2 | |||||
Затем что бы применении шире было
пример
0
|
31.08.2011, 11:27 [ТС] | 3 | ||||||||||
Возможно пока не привык ещё, поэтому такая неприязнь к именованному enum.
По мне так проще воспринимать так:
а так
если читать эту строку, то читается она так: в функцию print передается переменная type типа PrintType, но если посмотреть этот PrintType, то это будет перечисление, а не какой-то тип. не ассоциируется у меня PrintType как тип.
0
|
1280 / 598 / 116
Регистрация: 18.08.2009
Сообщений: 832
|
||||||||||||||||||||||||||
31.08.2011, 23:28 | 5 | |||||||||||||||||||||||||
Сообщение было отмечено как решение
Решение
Чтобы различать константы, которые одинаково называются - это РАЗ!
Добавь впереди букву T и будет ассоциироваться. И вообще желательно придерживаться коддинг-стандарта в той среде, в которой программируешь (или в фирме), если в Билдере, то enum начинается с T, далее описание - каждое слово без разделителей, последнее слово - в единственном числе, множество на основе этого enum - повторяет название enum + последнее слово во множественном числе. Название каждого элемента в enum - это аббревиатура больших букв в названии
Вот два кода для сравнения: Как из этого кода понять, что с формой происходит ... ?
Кстати чего далеко ходить
Ах, да и, совсем забыл, в Билдере можно получать текстовое значение enum, что очень удобно при сохранении в различные конфиги, а также при разработке различных скриптов.
4
|
01.09.2011, 11:42 [ТС] | 6 | |||||||||||||||
пробовал создавать константы с одинаковыми именами - билдер ругается.
это можно сделать и c неименованным enum. все примеры ниже можно применить и к неименованному enum.
1
|
1280 / 598 / 116
Регистрация: 18.08.2009
Сообщений: 832
|
|||||||||||
14.01.2013, 19:22 | 8 | ||||||||||
Это делается для удобства, ещё раз повторю
Интуитивно понятнее, гораздо проще разобраться для того, кто будет использовать твой код. Также компилятор предупредит, если будет передан не enum, autocomplete будет предлагать enum, если в параметре функции он прописан, ну и т.д.
2
|
14.01.2013, 19:34 | 9 |
И что тут простого ? А главное что хорошего ? Магические цифры ? Или сишный #define ? или то что пользователь может задать 999 и потом искать эту ошибку долго и нудно?
Ставить int там где должен быть enum очень плохой тон...
1
|
1280 / 598 / 116
Регистрация: 18.08.2009
Сообщений: 832
|
||||||
14.01.2013, 19:35 | 10 | |||||
1
|
14.01.2013, 19:35 | |
14.01.2013, 19:35 | |
Помогаю со студенческими работами здесь
10
Именованный не именованный каналы Какой смысл тега footer? Какой смысл синхронизации в многопоточности ? Какой смысл от подобного размещения? Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |