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

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

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

    Guest Гость

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

    Код (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 Гость

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

    ][tiger Гость

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

    Во-первых:

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

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

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

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

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