【c# 學習筆記】c#委托是什么


  法庭上律師為當事人辯護,他真正執行的是當事人的陳詞,律師就相當於一個委托對象,而當事人則委托律師對象為自己辯護。

  c#中的委托概念也就好比律師對象,它是一個類(“委托是類類型”這個事實將在“委托本質”部分進行詳細介紹),因為只有類才有對象的概念,這也體現了c#作為一門面向對象語言的特性。

  c#中的委托可以理解為函數的一個包裝,它使得c#中的函數可以作為參數來被傳遞,這在作用上相當於c++中的函數指針。c++用函數指針獲取函數的入口地址,然后通過這個指針來實現對函數的操作。

  委托的定義和方法的定義類似,只是在定義的前面多了一個delegate關鍵字。如下定義:

  

public delegate void MyDelegate(int para1, string para2);

  委托能包裝的方法是有一定限制的,例如能被前面的委托類型MyDelegate包裝的方法需要滿足以下條件:

    1.方法的返回類型必須為void;

    2.方法必須有兩個參數,並且第一個參數應為int類型,第二個參數為string類型。

      總結:可以被委托包裝的方法必須滿足以下規則:

    1.方法的簽名必須與委托一致,方法簽名包括參數的個數、類型和順序;

    2.方法的返回類型要和委托一致,注意,方法的返回類型不屬於方法簽名的一部分。

    

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM