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

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

Guest

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

Код:
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); // Так 

}

}
Почему то в приложение это событие не приходит.
 
M

mr_ST

Гость
#2
Из этого кода мало что понятно. На евент кто нить подписывается? OnLogIpAddr Где нибудь кто нибудь вызывает? Кстати, такие методы как твой OnLogIpAddr обычно объявляют как protected, во избежание.
 
T

][tiger

Гость
#3
Вообще изначально все неправильно написано. Не с точки зрения работоспособности, а с точки зрения стандартов оформления кода.

Во-первых:

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

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

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

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