1
從事件的「發件人」獲取信息有什麼更好的形式?投射到已知發件人的類型,還是直接使用名稱?我懷疑,投射會是更好的形式,但如果你知道這個名字,這似乎是一個相當迂迴的事情。下面是我考慮的例子:從事件中獲取信息的更好方式是什麼?
protected void OnEntry1Changed (object sender, System.EventArgs e) {
if ((sender as Gtk.Entry).Text != "some specific value" && (sender as Gtk.Entry).Text != "" && anotherEntry.Text !="") {
// Do some stuff here...
} else {
// Do some other stuff here...
}
}
另一個版本將是直接訪問該條目是這樣的:
protected void OnEntry1Changed(object sender, System.EventArgs e) {
if (Entry1.Text != "some specific value" && Entry1.Text != "" && anotherEntry.Text !="") {
//Do some stuff here...
} else {
// Do some other stuff here...
}
}
...看來,第二個版本會更直接,但是其中一個或另一個被認爲更「正確的代碼形式」?
我實際上更喜歡在我的EventArgs中獲取新值。 – Jens 2012-04-28 07:05:34
你能解釋誰該怎麼做?看起來在我的「e」中,我只有「Equals」,「GetHashCode」,「GetType」和「ToString」... – 2012-04-28 07:45:12
只有在控制發送這些事件的類時,才能這樣做。在這種情況下,只需繼承EventArgs並添加nesseccary屬性即可。如果你不控制它,那你的運氣不好。 – Jens 2012-04-28 18:04:25