|
0 / 0 / 0
Регистрация: 17.03.2013
Сообщений: 39
|
||||||
Избавиться от делегатов в коде24.05.2013, 10:53. Показов 2342. Ответов 25
Метки нет (Все метки)
Помогите пожалуйста избавиться от делегатов в этом кусочке программного кода. Заранее спасибо.
0
|
||||||
| 24.05.2013, 10:53 | |
|
Ответы с готовыми решениями:
25
Использование делегатов, найти ошибки в коде
|
|
78 / 78 / 15
Регистрация: 27.01.2013
Сообщений: 323
|
||||||
| 24.05.2013, 17:44 | ||||||
|
Да собственно объявите два метода в своем классе заместо делегатов и все:
1
|
||||||
|
0 / 0 / 0
Регистрация: 17.03.2013
Сообщений: 39
|
|
| 24.05.2013, 18:37 [ТС] | |
|
AlexAsche, спасибо, попробую, у меня много функций, где используется делегат, смогу ли я так ко всем применить? и не изменится ли функционал приложения?
0
|
|
|
78 / 78 / 15
Регистрация: 27.01.2013
Сообщений: 323
|
||||||
| 24.05.2013, 19:10 | ||||||
|
Сможете один раз объявите методы в классе и используйте сколько угодно раз - ничего не изменится.
Только я ; забыл убрать в конце метода соответственно:
1
|
||||||
|
0 / 0 / 0
Регистрация: 17.03.2013
Сообщений: 39
|
|||||||||||
| 24.05.2013, 20:38 [ТС] | |||||||||||
|
AlexAsche, если я правильно понят то для
0
|
|||||||||||
|
78 / 78 / 15
Регистрация: 27.01.2013
Сообщений: 323
|
|
| 24.05.2013, 20:50 | |
|
Да, только без ; в конце методов.
1
|
|
|
0 / 0 / 0
Регистрация: 17.03.2013
Сообщений: 39
|
|
| 24.05.2013, 22:05 [ТС] | |
|
AlexAsche, не получается у меня исправить, выдает более 200 ошибок, при исправлении одной функции, мб имеет смысл весь код выложить? (можно в личке связаться где-нибудь)
0
|
|
|
78 / 78 / 15
Регистрация: 27.01.2013
Сообщений: 323
|
|
| 24.05.2013, 22:10 | |
|
Выкладывайте.
1
|
|
|
0 / 0 / 0
Регистрация: 17.03.2013
Сообщений: 39
|
||||||
| 24.05.2013, 22:12 [ТС] | ||||||
|
он большой очень) там где используются делегаты их надо заменить
0
|
||||||
|
78 / 78 / 15
Регистрация: 27.01.2013
Сообщений: 323
|
|
| 24.05.2013, 22:38 | |
|
Ах вот оно что у вас весь код построен именно на использовании делегатов по максимуму functions[0] = new function("y = mod(x,a)", modxa, 2); массивы делегатов, передача делегатов и т.д. Действительно такой код избавить от делегатов - означает полностью переписать код. Метод в массив не засунуть и в другой метод не передать. Зачем вообще потребовалось от делегатов избавляться.
1
|
|
|
0 / 0 / 0
Регистрация: 17.03.2013
Сообщений: 39
|
|
| 24.05.2013, 23:00 [ТС] | |
|
AlexAsche, просто нужно сделать код на уровне начинающего программиста, а я не совсем понимаю, для чего нужны делегаты и как они используются(именно в этом коде)
Добавлено через 3 минуты А если переделывать, то это абсолютно все? и все будет абсолютно по-другому?
0
|
|
|
78 / 78 / 15
Регистрация: 27.01.2013
Сообщений: 323
|
|
| 24.05.2013, 23:10 | |
|
Да уж половину точно. И куча тупого кода типо if выбрана функция1 else if выбрана функция2 и т.д. Легче понять что такое делегаты. Типобезопастные указатели на методы по сути - msdn про делегаты
1
|
|
|
0 / 0 / 0
Регистрация: 17.03.2013
Сообщений: 39
|
|
| 25.05.2013, 09:03 [ТС] | |
|
AlexAsche, блин, интереснее бы переделать на "бессмысленный код типо if" а можете показать пример, хотябы на одной-двух математических функциях? Я потом по аналогии попытаюсь переделать все)
0
|
|
|
78 / 78 / 15
Регистрация: 27.01.2013
Сообщений: 323
|
||||||
| 25.05.2013, 09:57 | ||||||
|
Навскидку нужно начать с того что:
0.Все делегаты переписать как ранее описано на методы в классе Form1 1.написать метод currentFunction(double[] values) в классе Form1 где будет if(currentIndex == 0) modxa(values) else if(currentIndex == 1)... соответственно в том порядке в каком добавлялось в массив functions...ну или через case. 2.объявить поле в классе Form1: int currentIndex; 3.заменить строку currentFunction = functions[listBox.SelectedIndex]; на currentIndex = listBox.SelectedIndex; 4.заменить CurrentPoint.Y = (int)(-currentFunction.getY(currentParametrs) * zoom - cam.Y); на CurrentPoint.Y = (int)(-currentFunction(currentParametrs) * zoom - cam.Y); 5.убрать if (currentFunction == null) return; 6.в классе function конструктор переписать
8...N - возможно еще что-то.
1
|
||||||
|
0 / 0 / 0
Регистрация: 17.03.2013
Сообщений: 39
|
|
| 25.05.2013, 10:10 [ТС] | |
|
AlexAsche, Ужас, я думал будет немного проще, а тут все, что касается этих функций, мб я скину вам все приложение, а вы мне поможете все сделать? (могу денежку потом на телефон положить, в качестве благодарности))) У меня просто сроки поджимают, и если я щас сяду заниматься этим, то это надолго) да еще и программист я начинающий)
0
|
|
|
78 / 78 / 15
Регистрация: 27.01.2013
Сообщений: 323
|
|
| 25.05.2013, 10:22 | |
|
Отправьте мне на почту AlexFArbeit@gmail.com весь проект. Там и договоримся.
1
|
|
|
0 / 0 / 0
Регистрация: 17.03.2013
Сообщений: 39
|
|
| 25.05.2013, 18:51 [ТС] | |
|
AlexAsche, я вам отправил, пришло ли?
0
|
|
|
78 / 78 / 15
Регистрация: 27.01.2013
Сообщений: 323
|
|
| 25.05.2013, 19:03 | |
|
Нет не пришло. Давно отправили?
Добавлено через 5 минут Хм..Попробуйте убрать exe из проекта. Может gmail не пропускает. Ну или можете выложить сюда проект. А мне на почту кинуть просто маячок чтоб я почту знал.
1
|
|
|
0 / 0 / 0
Регистрация: 17.03.2013
Сообщений: 39
|
|
| 26.05.2013, 15:47 [ТС] | |
|
AlexAsche, выложу, часика через 3,
0
|
|
|
0 / 0 / 0
Регистрация: 17.03.2013
Сообщений: 39
|
|
| 26.05.2013, 19:22 [ТС] | |
|
AlexAsche, Вот мое приложение.
0
|
|
| 26.05.2013, 19:22 | |
|
Помогаю со студенческими работами здесь
20
Как избавиться от вечного цикла в коде? Как избавиться от флагов в данном коде?
Как избавиться от пустых строк в коде программы? Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога
Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
|
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
|
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога
В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
|
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога
Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
|
|
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога
Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
|
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога
Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
|
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования.
Часть библиотеки BedvitCOM
Использованы. . .
|
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога
SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
|