最佳解答者
想問個學事件處理器時產生的疑惑

問題
-
使用事件處理器如eventhandler時 配合的方法要有兩個參數 object sender與EventArgs e
我感到很疑惑 因為這兩個參數我沒宣告過
甚至在指派時 如button1.Click += this.sayHello; 也沒有填入這兩個參數帶入的物件
照理說方法有參數時 不是要在呼叫時給該有的參數嗎?
讓我更不解的是在沒宣告 也沒在呼叫時填參數的情況下
直接在該方法使用這兩個物件 居然有抓到東西而且是正確的物件 如以下代碼
private void sayHello(object sender, EventArgs e)
{
MessageBox.Show("121");
Console.WriteLine((sender as Button).ToString());
Console.WriteLine(e.ToString());
}所以想請問是否有人知道背後運作的原理
1.為何帶兩個參數的方法卻能在呼叫時不用給參數也能呼叫
2.沒宣告也沒給參數的兩個物件為何存在並能使用 系統是如何知道這兩個參數到底是什麼 從何而來?
感謝
解答
-
學事件要先懂委派, 除了上述小朱給的參考外,
也可以看看以下這個
在現實生活中,你和誰在一起的確很重要,甚至能改變你的成長軌跡,決定你的人生成敗。 和什麼樣的人在一起,就會有什麼樣的人生。 和勤奮的人在一起,你不會懶惰; 和積極的人在一起,你不會消沈; 與智者同行,你會不同凡響; 與高人為伍,你能登上巔峰。
- 已編輯 Bill ChungMVP, Moderator 2016年11月27日 上午 02:17
- 已標示為解答 GREZOD 2016年11月27日 上午 05:15
所有回覆
-
學事件要先懂委派, 除了上述小朱給的參考外,
也可以看看以下這個
在現實生活中,你和誰在一起的確很重要,甚至能改變你的成長軌跡,決定你的人生成敗。 和什麼樣的人在一起,就會有什麼樣的人生。 和勤奮的人在一起,你不會懶惰; 和積極的人在一起,你不會消沈; 與智者同行,你會不同凡響; 與高人為伍,你能登上巔峰。
- 已編輯 Bill ChungMVP, Moderator 2016年11月27日 上午 02:17
- 已標示為解答 GREZOD 2016年11月27日 上午 05:15