![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#11 |
Старожил
Регистрация: 16.12.2011
Сообщений: 2,329
|
![]()
1. Сразу приучайся не использовать магические числа.
2. Сразу возьми себе за правило - если можно не использовать вложенные ветвления - никогда их не используй. Пример 1: Код:
К тому же, eMove - это тип данных, а значит можно использовать проверку типов, и перегрузку функций (такой то обработчик работает с такими то перечислениями, другой обработчик - с другими, и тп). Пример 2: Предположим, тебе нужно обрабатывать много разных клавиш. И если эта клавиша eLeft (как из твоего примера), то прежде чем будет запущена функция её обработки, будет последовательно проверены все предыдущие условия. Это нерациональное падение производительности. Можно сократить время поиска функции обработчика, до некоторого минимального и фиксированного значения. Если использовать switch Код:
|
![]() |
![]() |
![]() |
#12 |
Пользователь
Регистрация: 28.02.2012
Сообщений: 23
|
![]()
Спасибо, но впервые стыкаюсь с enum.
|
![]() |
![]() |
![]() |
#13 |
Старожил
Регистрация: 16.12.2011
Сообщений: 2,329
|
![]()
Грубо говоря, это просто целочисленные константы.
Код:
Причем, eUp - это константа, имеющая заданный программистом тип: eMove Например: Код:
Код:
Ещё один пример: Код:
После чего, программист может конструировать функции, которые будут работать только с этим типом данных. Например, ты можешь написать функцию, которая в качестве входного значения будет принимать только и только коды нажатых клавиш. Что гарантирует тебе безопасную работу. Нельзя будет ничайно скормить обработчику клавиши какой то левый непонятный код. |
![]() |
![]() |
![]() |
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Delphi: аппроксимация функций методом базиса из финитных функций | Denna | Помощь студентам | 1 | 12.03.2012 19:23 |
Delphi. Посимвольное раскидывание string'а по кнопкам. | Риндера | Помощь студентам | 13 | 08.11.2010 17:30 |
Вопрос по кнопкам... | Han_Nik | Помощь студентам | 4 | 19.05.2010 20:41 |
переключение раскладки клавиатуры по кнопкам Alt и Shift | Slash3 | Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM | 4 | 10.03.2009 13:08 |
пара вопросов по кнопкам | grey | Помощь студентам | 4 | 11.11.2007 19:09 |