C# 事件處理程序的連結:委託推論與明確委託用法
C# 中的事件允許物件之間鬆散耦合,提供了一種處理外部事件的機制。一個常見場景涉及動態訂閱外部物件的事件,您會遇到以下語法變體:
<code class="language-c#">[object].[event] += anEvent;</code>
或
<code class="language-c#">[object].[event] += new EventHandler(anEvent);</code>
這兩種方法看起來相似,但更深入的理解揭示了它們的細微差別。
在第一種變體中,編譯器執行委託推斷,根據提供的函數簽章自動決定合適的委託類型。這種簡化的語法最大限度地減少了程式碼冗餘。
在第二種變體中,您使用 new
關鍵字明確指定 EventHandler
委託。這種方法是 C# 1.0 專案的唯一選擇,但在 C# 2.0 及更高版本中,委託推論成為首選方法。
何時使用委託推斷
對於 C# 2.0 及更高版本的項目,建議使用委託推論。它簡潔明了,並提高了程式碼的可讀性。
範例:
<code class="language-c#">private void Button1_Click(object sender, EventArgs e) { // 事件处理逻辑 } private void Form1_Load(object sender, EventArgs e) { Button1.Click += Button1_Click; }</code>
在此範例中,委託推論會自動決定 Button1
點選事件的正確 EventHandler
委託。
明確委託用法
雖然委託推斷很普遍,但在處理遺留程式碼或進行效能最佳化時,有時可能需要明確指定委託。但是,顯式委託用法通常會增加不必要的冗長,應僅在必要時使用。
以上是C# 中的 EventHandler 接線:委託推理與明確委託使用?的詳細內容。更多資訊請關注PHP中文網其他相關文章!