Re: как удалить из события все делегаты?
От: _FRED_ Черногория
Дата: 03.10.06 16:45
Оценка: +3
Здравствуйте, <Аноним>, Вы писали:

А>есть класс в котором набор событий.

А>из другого класса нужно иметь возможность очистить список делегатов,
А>назначенных на это события функцией типа


Если класс, от событий которого надо отписаться, разрабатываешь ты сам и не страшно добавить в него некоторую для этого функциональность (судя по-примерам, такое возможно), то почему бы не сделать так:
namespace ConsoleApplication1
{
  using System;
  using System.Diagnostics;

  class Program
  {
    static void Main(string[] args) {
      Test t = new Test();
      t.Event += delegate { Debug.Print("Test Handler!"); };
      t.FireEvent();
      t.ClearEvent();
      t.FireEvent();
    }
  }

  class Test
  {
    public event EventHandler Event;

    internal void FireEvent() {
      if(Event != null) {
        Event(this, EventArgs.Empty);
      }//if
    }

    internal void ClearEvent() {
      Event = null;
    }
  }
}
... << RSDN@Home 1.2.0 alpha rev. 652>>
Now playing: «Тихо в лесу…»
Help will always be given at Hogwarts to those who ask for it.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.