C#委托是什么
當(dāng)前位置:點(diǎn)晴教程→知識(shí)管理交流
→『 技術(shù)文檔交流 』
法庭上律師為當(dāng)事人辯護(hù),他真正執(zhí)行的是當(dāng)事人的陳詞,律師就相當(dāng)于一個(gè)委托對(duì)象,而當(dāng)事人則委托律師對(duì)象為自己辯護(hù)。 c#中的委托概念也就好比律師對(duì)象,它是一個(gè)類(“委托是類類型”這個(gè)事實(shí)將在“委托本質(zhì)”部分進(jìn)行詳細(xì)介紹),因?yàn)橹挥蓄惒庞袑?duì)象的概念,這也體現(xiàn)了c#作為一門面向?qū)ο笳Z言的特性。 c#中的委托可以理解為函數(shù)的一個(gè)包裝,它使得c#中的函數(shù)可以作為參數(shù)來被傳遞,這在作用上相當(dāng)于c++中的函數(shù)指針。c++用函數(shù)指針獲取函數(shù)的入口地址,然后通過這個(gè)指針來實(shí)現(xiàn)對(duì)函數(shù)的操作。 委托的定義和方法的定義類似,只是在定義的前面多了一個(gè)delegate關(guān)鍵字。如下定義:
委托能包裝的方法是有一定限制的,例如能被前面的委托類型MyDelegate包裝的方法需要滿足以下條件: 1.方法的返回類型必須為void; 2.方法必須有兩個(gè)參數(shù),并且第一個(gè)參數(shù)應(yīng)為int類型,第二個(gè)參數(shù)為string類型。 總結(jié):可以被委托包裝的方法必須滿足以下規(guī)則: 1.方法的簽名必須與委托一致,方法簽名包括參數(shù)的個(gè)數(shù)、類型和順序; 2.方法的返回類型要和委托一致,注意,方法的返回類型不屬于方法簽名的一部分。 該文章在 2021/1/29 8:57:26 編輯過 |
關(guān)鍵字查詢
相關(guān)文章
正在查詢... |