從C#通過CLR處理髮件人型空當:爲什麼與事件
說明很多人奇怪爲什麼 事件模式要求發件人 參數始終是Object類型 的畢竟,因爲MailManager將 是提高與 事件的NEWMAIL EventArgs對象的唯一類型,它使 多爲回調方法意義 這樣是原型:
void MethodName(MailManager sender, NewMailEventArgs e);
該模式要求發件人 參數是Object類型的大多是 因爲繼承的,如果麥 lManager使用什麼作爲 SmtpMailManager一個基類?在這種情況下, 回調方法應該有原型如下 SmtpMailManager,而不是郵件 經理的 sender參數,但是這是不可能發生的,因爲 SmtpMai lManager剛剛繼承所以代碼 NewMai升的事件,這是 期待SmtpMail經理提高 事件仍必須具有對 sender參數轉換爲SmtpMailManager在其他 也就是說,中投仍需要 ,所以sender參數 還不如分類爲對象。
下原因打字發件人 參數與obj ECT只是 fexibility它允許委託 由多種類型,提供使用 該穿過的NEWMAIL EventArgs對象例如一個事件,一個 PopMai lManager類可以使用 委託即使該類不 從郵件管理器衍生
我根本無法理解,爲什麼發件人是一個對象 - 爲何不能被泛型?所以大多數的時候我們並不需要做普通鑄件
請在發佈之前先格式化您的文本 - 這篇文章和上一篇文章中的額外空格使其非常難以閱讀(如同所有文章均以代碼形式發佈) 。 – 2010-05-28 14:53:04