我最近一直在開發MFC和C#Windows窗體應用程序,我注意到自動生成的事件處理程序上的訪問修飾符之間的區別。事件處理程序訪問修飾符MFC vs C#WinForms
在MFC
public:
afx_msg void OnBnClickedOk();
在C#贏表單
private void button1_Click(object sender, EventArgs e)
所以我的問題是,爲什麼是事件處理程序在MFC中聲明爲public,我會雖然C#的方式是在技術上更好它促進封裝(這也許是爲什麼它被改變了)。
感謝
感謝您的詳細解釋! – TomP89 2012-03-21 22:51:33
答案很好,但我想補充一點,MFC中的事件處理程序不需要公開,它們是默認公開的。所有的調用都是通過指向這些方法的指針(MESSAGE_MAP)發生的。 – 2012-04-02 16:21:35
Léo - 是的,我確實知道使用了一個函數指針表 - 我認爲可見性並不重要(但我不想說因爲它已經有一段時間了);我確實記得利用默認公共的優勢,然後將另一個窗口的處理程序連接到一條消息,這對於複雜的UI來說很酷 – 2012-04-02 16:26:40