Здравствуйте, <Аноним>, Вы писали:
А>Здравствуйте, _FRED_, Вы писали:
А>>>Если класс, от событий которого надо отписаться, разрабатываешь ты сам и не страшно добавить в него некоторую для этого функциональность (судя А>>по-примерам, такое возможно), то почему бы не сделать так:
А>Точно! можно же просто занулить событие.. !
А>а я все от с++ и дельфи не могу отойти.. если создал — то нужно обязательно удалить.
а можно еще так:
using System;
using System.Diagnostics;
class Program
{
static void Main(string[] args)
{
Test t = new Test();
t.Event += delegate { Console.WriteLine("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()
{
foreach(EventHandler eh in Event.GetInvocationList())
Event -= eh;
}
}
Тот кто знает не говорит, тот кто говорит не знает.