Re: Собитие + делегат. Некоторые аспекты. Тока ногами не бей
От: Mab Россия http://shade.msu.ru/~mab
Дата: 20.10.05 08:49
Оценка:
Используйте теги c# и /с# для выделения кода на этом языке. Еще стоит отучаться писать C перед именами классов -- naming guidelines в .NET другие.

_CT>Имею я право сделать так:


_CT>
_CT>public class CDBCRM
_CT>{
_CT>   public event ConnectionEventHandler ConnectionStateChange;
_CT>}

_CT>// и соответственно не

_CT>CDBCRM.ConnectionStateChange += new CDBCRM.ConnectionEventHandler(frmMain.OnCRMStateChange);

_CT>//a

_CT>m_DBCRM.ConnectionStateChange += new CDBCRM.ConnectionEventHandler(frmMain.OnCRMStateChange);
_CT>


_CT>т.к. хочу обрабатывать это событие не на уровне типа, а на уровне объекта класса?

Событие было объявлено статическим. Поэтому второй способ даже не скомпилируется. Что подразумевается под "на уровне объекта класса"?

Вообще, зачем было делать событие статическим?

[Ужас поскипан]
Если нужно делегировать событие, то делают так:
public static event ConnectionEventHandler ConnectionStateChange
{
  add { m_Connection.ConnectionStateChange += value; }
  remove { m_Connection.ConnectionStateChange -= value; }
}


Кстати, зачем в CDBCRM был объявлен тип делегата, ничем не отличающийся от существующего, не ясно.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.