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

Тема в разделе ".NET", создана пользователем Guest, 14 мар 2006.

Статус темы:
Закрыта.
  1. Guest

    Guest Гость

    Репутация:
    0
    Что-то у меня с событиями не клеится.

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

    }

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

    mr_ST Гость

    Репутация:
    0
    Из этого кода мало что понятно. На евент кто нить подписывается? OnLogIpAddr Где нибудь кто нибудь вызывает? Кстати, такие методы как твой OnLogIpAddr обычно объявляют как protected, во избежание.
     
  3. ][tiger

    ][tiger Гость

    Репутация:
    0
    Вообще изначально все неправильно написано. Не с точки зрения работоспособности, а с точки зрения стандартов оформления кода.

    Во-первых:

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

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

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

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

Поделиться этой страницей