2016-11-16 79 views
0

創建事件時,發送EventArgs對象作爲第二個參數是標準操作。但是,事件往往只需要發送一個數據,比如一個字符串或int。據我所知,你不能真正對EventArgs類做任何事情。在沒有EventArgs的情況下創建事件

那麼是否真的有必要創建一個帶有一個字段的全新類,以僅用於發送帶有事件的簡單字符串/ int?

public delegate void JoinButtonEvent(object sender, string buttonId); 

VS

public delegate void JoinButtonEvent(object sender, JoinButtonEventArgs e); 

JoinButtonEventArgs是與場的一類稱爲buttonId

+0

它是否編譯?那麼這是沒有必要的。 –

+0

看看這個:http://stackoverflow.com/questions/3312134/does-net-have-a-built-in-eventargst – n8wrl

回答

1

不,您的代碼不需要編譯;但編碼公約是明智的,它是一個好主意。

這次你只關心一個變量,但是如果你將來需要另一個變量,你必須更新所有的舊代碼來獲得一個附加參數,而不是隻在需要的時候向中心類添加另一個屬性新。 (由於事件不是多態的,不能像方法一樣重寫,對於相同的方法名稱有不同的參數)

相關問題