我需要在對象obj中訂閱事件的事件處理方法中訪問對象obj(類型爲某些ClassA)的x和y屬性。鑄造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
選項2: 做一個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對象。
3210可以說這個事件持續增加@ 50 /秒。哪一個更有效?它取決於ClassA的大小嗎?我認爲Option3是性能最好的方法。請給出你的見解。
什麼是語言? Java的? – jball 2010-11-09 22:23:45
這個語言是C# – user441660 2010-11-09 23:54:38