0 / 0 / 1
Регистрация: 08.12.2014
Сообщений: 14
|
||||||
1 | ||||||
Хранение и передача метода в качестве параметра19.06.2012, 00:51. Показов 2528. Ответов 2
Метки нет (Все метки)
Здравствуйте.
Заранее прошу извинить, что создал одну и ту же тему в двух ветках (в том числе и "для начинающих"). Судя по темам мне сложно отделить одних от других. Я создал некий некий класс SerialConnector, ответственный за работу с COM портом. Класс открывает порт используя параметры, хранящиеся в объекте класса SerialConnectorProperties. Одним из свойств SerialConnectorProperties должна быть ссылка на метод класса, который запоняет SerialConnectorProperties и используя этот объект создает объект SerialConnector. Я пробовал использовать делегаты, но тогда вываливается исключение о невозможности приведения типов. Строки, с декларациями я пометил знаками вопроса. Прошу помочь реализовать данную схему в том виде, в котором я её представил. (На самом деле строки с вопросами - болванки, я не знаю, что там написать.)
P.S. Вообще, строго говоря, я бы хотел просто хранить ссылку на обработчик события в отдельном классе. В данном случае для меня состоит проблемой как именно положить, хранить и забрать потом эту ссылку.
0
|
19.06.2012, 00:51 | |
Ответы с готовыми решениями:
2
Передача члена класса в качестве параметра метода [C++, OpenGL, glut] передача метода класса в качестве параметра функции glutDisplayFunc() Передача метода класса в качестве параметра для метода другого класса Enum в качестве параметра метода |
192 / 147 / 27
Регистрация: 02.05.2011
Сообщений: 467
|
|
19.06.2012, 16:48 | 2 |
Не понимаю почему вы не можете использовать делегирование.
В момент создания экземпляра класса SerialConnectorProperties вы должны указать метод, который будет вызываться делегатом SerialDataReceivedEventHandler. Далее просто вызываете свой делегат из класса SerialConnectorProperties и получаете что хотите. Так работает, например, взаимодействие с нестандартными модальными окнами. Добавлено через 56 секунд Ссылка на обработчик события - это и есть делегат. В С++ были функторы - указатели на функции, сейчас их заменил клаас delegate
0
|
0 / 0 / 1
Регистрация: 08.12.2014
Сообщений: 14
|
||||||
19.06.2012, 20:43 | 3 | |||||
Заранее хочу сказать спасибо всем, кто прочитал мой пост, а особенно тем,
кто, так или иначе пытался помочь. Далее привожу рабочий код, где строки, имеющие значение, теперь обозначены восклицательными знаками. Рабочий код.
0
|
19.06.2012, 20:43 | |
19.06.2012, 20:43 | |
Помогаю со студенческими работами здесь
3
Слово this в качестве параметра для метода Константа в качестве параметра метода - как? Маcсив в качестве необязательного параметра метода Произвольный базовый метод в качестве параметра метода Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |