Мне нужно получить доступ к свойствам объекта и объектам объекта obj (типа some ClassA) в методе обработки событий, подписанном на событие в объекте obj.casting vs параметр передачи
Вариант1: просто введите это событие типа EventHandler, отправьте отправителя.
void handlingMethod(object sender, EventArgs e) { ClassA ca = sender as ClassA; Dosomething(ca.id, ca.x, ca.y); } RaiseEvent(this,null); //in ClassA
Option2: Сделать SpecialEventHandler1 так, что литье можно избежать.
void handlingMethod(SpecialEventArgs e) { Dosomething(e.id, e.x,e.y); } RaiseSpecialEvent1(new SpecialEventArgs(this.id, this.x,this.y));//in ClassA
Вариант3: Сделать SpecialEventHandler2 так, что и отливка и новые SpecialEventArgs создания объекта можно избежать.
void handlingMethod(ClassA sender) { Dosomething(sender.id, sender.x, sender.y); } RaiseSpecialEvent2(this); //in ClassA
Допустим, что эти события постоянно поднимаются @ 50/сек. Какой из них эффективнее? Это зависит от размера ClassA? Я предполагаю, что Option3 - лучший способ с точки зрения производительности. Пожалуйста, дайте свои идеи.
Какой langague? Ява? – jball
язык C# – user441660