Не клеится с событиями что-то

  • Автор темы Автор темы Guest
  • Дата начала Дата начала
Статус
Закрыто для дальнейших ответов.
G

Guest

Что-то у меня с событиями не клеится.

Код:
namespace CTest

{

//Есть интерфейс

 public delegate void DelegateLogIpAddr(uint dwIpAddr);


 [Guid("A7B88840-A812-11cf-8011-00A0C90A8F78")]

 public interface IDCCManTest

 {

 event DelegateLogIpAddr EventLogIpAddr;

 void OnLogIpAddr(uint dwIpAddr);

         ...

 }

//Есть компонент, который должен перехватывать событие OnLogIpAddr интерфейса

public class CTestComp : System.ComponentModel.Component, IDCCManTest

{

 ...

 public event DelegateLogIpAddr EventLogIpAddr;

 public virtual void OnLogIpAddr(uint dwIpAddr)

 {

   if (EventLogIpAddr != null)

      EventLogIpAddr(dwIpAddr); // Так 

}

}
Почему то в приложение это событие не приходит.
 
Из этого кода мало что понятно. На евент кто нить подписывается? OnLogIpAddr Где нибудь кто нибудь вызывает? Кстати, такие методы как твой OnLogIpAddr обычно объявляют как protected, во избежание.
 
Вообще изначально все неправильно написано. Не с точки зрения работоспособности, а с точки зрения стандартов оформления кода.

Во-первых:

public delegate void LogIpAddrEventHandler(object this, LogIpAddrEventArgs e);

public class LogIpAddrEventArgs: EventArgs
{
.....
}

Во-вторых, метод On... обычно protected. В-третьих, где вызов OnLogIpAddr? Где подписка на событие? Этот код понятно, что не будет работать.

Самое главное, что все то, что я сказал - есть в msdn и очень подробно.
 
Статус
Закрыто для дальнейших ответов.
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!