1. 程式人生 > >關於委托的一些知識

關於委托的一些知識

控件 數據 委托 靜態函數 c++ 靜態方法 回收 pan 一點

  C#語言規範中提到:

  1)委托是引用一個或多個方法的數據結構。對於實例方法,委托還可引用實例方法對應的對象實例。

  2)在 C 或 C++ 中與委托最接近的是函數指針,但函數指針只能引用靜態函數,而委托則既可以引用靜態方法,也可以引用實例方法。在後一種情況中,委托不僅存儲了一個對該方法入口點的引用,還存儲了一個對相應的對象實例的引用,該方法就是通過此對象實例被調用的。

  此外,還提到:引用了實例方法的委托也就引用了一個特定的對象,當通過該委托調用這個實例方法時,該對象在調用中成為 this。紅字至少給出一點我認為比較重要的信息,就是委托會保存對象的引用,換言之,實例方法只要被委托引用,該實例就不會被GC回收。(簡單提下,控件實例的方法被委托引用後,該控件不會被GC回收(即使調用控件的Dispose方法),這意味著在調用委托(特別是多播委托)時,該實例的方法會被調用)

關於委托的一些知識