作為初學者在這裡實不宜談博客,只想把自己學到的想到的總結一下,以便自己回顧知識,如能被大神無意撇到我的文章,能夠對於不足進行指導更是幸運,若給現在針對本個問題還處於迷茫的朋友帶來一絲借鑒也是開心! 盲人點燈,多多指點 ...
委托,剛接觸時確實很模糊,說不明白吧,似是明白,委托,顧名思義,就是自己要乾什麼事,不直接乾,而是交付給別人乾。委托在編程中的定義就是:
在C#中,委托(delegate)是一種引用類型,在其他語言中,與委托最接近的是函數指針,但委托不僅存儲對方法入口點的引用,還存儲對用於調用方法的對象實例的引用
而在編程中,就是把要執行的事件通過委托來調用別的方法。我覺得可以簡單的比喻為中介。好吧,讓我們來認識這個“中介”吧!
首先:讓中介存在:委托的建立:建立一個委托類型,並聲明該委托可以指向的方法的簽名(函數原型)
語法:訪問修飾符 delegate 返回值類型 委托名(參數類型 參數)
eg: delegate void MyDelegate(int a,int b);
然後:目前市面上的中介很多,有售房的,買裝飾的,所以得指定中介的工作類型,要幹嘛
建立一個委托類的實例,並指向要調用的方法
eg:MyDelegate md=new MyDelegate(Max); 告訴用戶你是尋找最大值的
最後:告訴委托方我已經找人解決了你的問題:利用委托類實例調用所指向的方法:
int c=md(4,5)
好啦!我們已經大致的解析了一下委托,不過還得仔細琢磨一下它的定義。畢竟“中介”也有自己的制度嘛!
1.是引用類型 2.存儲對方法的引用
最後就拋拋重點吧!為什麼要委托,沒有委托也可以直接調用呀!我以前也是這麼想的,大家都不想找中介為什麼滿大街的“中介”,就是很多事情自己辦不到或者自己不方便就找中介唄,委托也如此,比如微軟寫好的事件不便掉用別的方法呀!一般大型項目更能體現委托的存在性。
其實聊委托,可能有很多東西拿來講,我也希望能學到更深的東西,So~本文有任何錯誤,敬請高人賜教!