Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > .NET Frameworks (точка нет фреймворки) > C# (си шарп)
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 19.06.2012, 01:24   #1
RobotMan
Новичок
Джуниор
 
Регистрация: 19.06.2012
Сообщений: 2
По умолчанию Хранение и передача метода в качестве параметра

Здравствуйте.

Я создал некий некий класс SerialConnector, ответственный за работу с COM портом.
Класс открывает порт используя параметры, хранящиеся в объекте класса SerialConnectorProperties.
Одним из свойств SerialConnectorProperties должна быть ссылка на метод класса, который запоняет
SerialConnectorProperties и используя этот объект создает объект SerialConnector.
Я пробовал использовать делегаты, но тогда вываливается исключение о невозможности приведения
типов. Строки, с декларациями я пометил знаками вопроса. Прошу помочь реализовать данную схему
в том виде, в котором я её представил. (На самом деле строки с вопросами - болванки, я не
знаю, что там написать.)

Код C#

Код:
namespace Something
{

//Класс для хранения параметров соединения (параметров COM порта).
//На самом деле класс заменяет некую структуру параметров.
//Так же класс хранит метод стороннего класса, метод - обработчик события,
//который должен вызываться из класса SerialConnector.
public class SerialConnectorProperties
    {
        //... параметры соединения
        public SerialDataReceivedEventHandler CallBack; //????????
    }
	
//Класс представляющий некоторый коннектор COM порта.
//В конструкторе устанавливаются параметры работы порта
//и назначается обработчик события DataReceived.
public class SerialConnector
    {
        private SerialPort Port;
                       
        public SerialConnector(SerialConnectorProperties Properties)
        {
			//... настройка порта.
			//... здесь должен установиться обработчик.
            Port.DataReceived += new SerialDataReceivedEventHandler(Properties.CallBack); //????????
            Port.Open();
        }	
	}

//Класс, создающий экземпляр объекта класса SerialConnectorProperties.
//Объект заполняется и передается в качестве параметра конструктору
//класса SerialConnector.
public class MyClass
    {
        private SerialConnector MyConnector; 

        public MyClass()
        {
            SerialConnectorProperties MyProperties = new SerialConnectorProperties();
            //... создал объект - хранилище параметров.
			//... заполнил свойства - параметры.
			//... здесь должен в объекте MyProperties сохранится метод EventHandler.
            MyProperties.CallBack = EventHandler; //????????
            MyConnector = new SerialConnector(MyProperties);
        }
		
		public SerialDataReceivedEventHandler EventHandler(object sender, SerialDataReceivedEventArgs e)
        {
            return null;
        }
	}
}
Заранее спасибо.

P.S. Вообще, строго говоря, я бы хотел просто хранить ссылку на обработчик события в отдельном классе.
В данном случае для меня состоит проблемой как именно положить, хранить и забрать потом эту ссылку.

Последний раз редактировалось RobotMan; 19.06.2012 в 01:27.
RobotMan вне форума Ответить с цитированием
Старый 19.06.2012, 20:48   #2
RobotMan
Новичок
Джуниор
 
Регистрация: 19.06.2012
Сообщений: 2
По умолчанию

Тема закрыта.
RobotMan вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Передача хранимой процедуры в качестве параметра в функцию xabik БД в Delphi 5 04.08.2011 11:08
Что нужно передавать в качестве параметра обработчика нажатия кнопки при его вызове из другого метода? Вадим Мошев Общие вопросы Delphi 7 03.05.2011 14:31
Delphi Fortran DLL передача процедуры в качестве параметра gimlis Помощь студентам 1 23.03.2011 22:52
Передача поля объекта в процедуру в качестве параметра Голованов Д. Microsoft Office Excel 10 02.11.2009 16:22
Передача метода класса в качестве параметра в другой метод Dmytry87 Общие вопросы C/C++ 0 12.11.2008 15:28