簡體   English   中英

有代理處理程序的事件和沒有代理處理程序的事件有什么區別?

[英]What is the difference between Events with Delegate Handlers and those without?

這有什么區別:

this.btnOk.Click += new System.EventHandler(this.btnOK_Click);

和這個?

this.btnOk.Click += this.btnOK_Click;

他們都工作。 前者是Visual Studio在使用代碼段時默認使用的內容。 但它似乎只是廣告額外的措辭,或者我錯過了什么?

沒有不同。 省略委托實例化只是語法糖果; C#編譯器將為您生成代理實例化。

在C#3.0及更高版本中,這沒有區別。 在C#3.0之前由於編譯器限制需要EventHandlers,但隨着C#3.0的出現,第二種形式是首選,除非你想要非常明確。

我相信C#3.0以來隱含地添加了委托處理程序。 但是,它可以幫助更明確,尤其是當存在多種可能的委托類型時。

“+ = Delegate_Name”是語法糖。 編譯器將為您創建新的包裝器。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM