想象一下,我有一個具有按鈕的類(窗體/窗口)。在我的課堂我訂閱按鈕的方法,我把我自己的事件在它:觸發事件與發件人從下標事件或這?
public delegate void MyEventHandler(object source, MyEventArgs e);
public event MyEventHandler MyEvent;
protected virtual void OnMyEvent(MyEventArgs e)
{
if (this.MyEvent != null) this.MyEvent(this, e);
}
private void Button_Click(object sender, EventArgs e)
{
this.OnMyEvent(???, ???);
}
什麼是觸發我的事件的正確方法。我是否應該用我自己的EventArgs
來使用this
?
this.OnMyEvent(this, new EventArgs());
或者我應該發送我的發件人和事件參數到我自己的事件訂閱?
this.OnMyEvent(sender, e);
什麼是正確的方法。我們應該只堅持一種方法嗎?微軟如何做到這一點?任何代碼準則?
謝謝。
取決於你的事件處理程序需要什麼。它是否需要按鈕上的eventargs?它需要新的事件嗎?或者它可能根本不需要eventargs,你可以從簽名中刪除它們? – Natrium
參考 - https://msdn.microsoft.com/en-us/library/edzehd2t%28v=vs.110%29.aspx?f=255&MSPPError=-2147217396 – NoviceProgrammer
@NoviceProgrammer所以MS使用'this'作爲發件人。 – modiX