首頁 >後端開發 >C++ >您應該避免對匿名空委託進行空檢查嗎?

您應該避免對匿名空委託進行空檢查嗎?

Barbara Streisand
Barbara Streisand原創
2024-12-31 09:18:13666瀏覽

Should You Avoid Null Checks with Anonymous Empty Delegates?

避免使用匿名空委託進行空檢查:分析優點和缺點

向事件聲明添加匿名空委託會引發有關其事件聲明的問題潛在的缺點。雖然避免空檢查的好處是顯而易見的,但該習慣用法的全部含義仍不清楚。

該習慣用法已在各種線上論壇中進行了討論,但深入研究潛在的缺點至關重要。人們擔心它的廣泛使用和潛在的維護問題。此外,空事件訂閱者呼叫對效能的影響也是一個有效的考慮因素。

效能視角

與擔憂相反,空事件訂閱者呼叫不會產生效能懲罰。事實上,有一種更有效的方法來解決空檢查和效能問題。

擴展方法解決方案

擴展方法可以定義如下:

public static void Raise(this EventHandler handler, object sender, EventArgs e)
{
    if(handler != null)
    {
        handler(sender, e);
    }
}

有了這個擴展,事件引發可以簡化為:

// Works, even for null events.
MyButtonClick.Raise(this, EventArgs.Empty);

利用這種方法,空檢查將成為過去,提供更乾淨、更有效率的解決方案。

以上是您應該避免對匿名空委託進行空檢查嗎?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn