Как отписаться от события - C#
Формулировка задачи:
Доброе время суток!
В общем ситуация такая: есть три класса("Class1","Class2","Class3")...
"Class1" содержит публичное событие "Event1"
Структура "Class2":
Структура "Class3":
Примичание: Доступа к редактированию классов 1 и 2 нету, также в классе 3 вызывать базовый конструктор обязательно...
Спасибо за помощь...
Писал по памяти, если есть вопросы спрашивайте!!!
class Class2 { private Class1 _fieldName; public Class1 FieldName { get { this._fieldName } } public Class2() { this._fieldName.Event1 += new System.EventHandler(method1); } private void method1(object sender, EventArgs e) { } }
class Class3 : Class2 { public Class3(): base() { // тут нужно отписаться } }
Решение задачи: «Как отписаться от события»
textual
Листинг программы
using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace ConsoleApplication1 { interface IMethod { void Method(object sender, EventArgs e); } class Class1 { public event EventHandler<EventArgs> EventMetod = delegate { }; public void FireEvent() { EventMetod(this, new EventArgs()); } } class Class2:IMethod { private Class1 class1; public event EventHandler<EventArgs> EventMethod { add { class1.EventMetod += value; } remove { class1.EventMetod -= value; } } public Class2() { class1 = new Class1(); this.EventMethod += new EventHandler<EventArgs>(((IMethod)this).Method); FireEvent(); } public void FireEvent() { class1.FireEvent(); } void IMethod.Method(object sender, EventArgs e) { Console.WriteLine("Test!!!"); } } class Class3:Class2 { public Class3():base() { this.EventMethod -= new EventHandler<EventArgs>(((IMethod)this).Method); FireEvent(); } } class Program { static void Main(string[] args) { Class3 obj = new Class3(); } } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д