我眼中的委託

2021-06-22 01:32:54 字數 1037 閱讀 6162

首先委託是乙個型別,和int、string一樣,我們日常說的委託其實是委託型別的變數,委託的作用就是把方法當成引數來傳遞,將方法賦值給委託型別的變數,然後由這個變數去呼叫執行方法。換個方式,委託沒有具體實現體,因為委託就是叫別人去辦事,自己當然不需要實現了,但是委託別人必須要清楚自己想辦什麼事,這個就由委託的返回值型別和引數列表決定。自己清楚自己想要的了然後就應該找能幫自己做這件事的人就是具體實現方法,如果沒人能做,那麼委託也沒達不到目的了。有了具體幫我們的人我們就可以把這個委託表達出來並告訴幫我們的人,最後就是別人去幫我們完成這個委託。

語法:public delegate string showdelegate(string str);    //宣告乙個包含乙個string型別引數並返回乙個string型別的委託

使用:1、使用委託必須要有乙個該委託對應的方法,因為委託目的就是傳遞方法,但是這個方法是被限定的,引數和返回值必須和委託一致

public static string show(string str)

2、然後將該方法賦給委託型別的變數(注意在給委託變數賦值方法的時候不能加括號,因為此時的方法是被當成乙個引數用的,並沒有呼叫)

showdelegate sd = show;

3、呼叫委託變數,將所需引數傳入得到返回內容,從而達到呼叫方法的目的

string ret = sd("hello world");

生活中找人幫買飯的例子:

public delegate 飯 幫我買飯(錢);      //宣告乙個買飯的委託,想讓別人去幫我拿錢買飯

class 同學                        //宣告乙個同學類

}幫我買飯  幫忙 = new 幫我買飯(同學.買飯);  //宣告乙個該委託型別的變數叫「幫忙」,同時找到能幫我買飯的人

幫忙(錢);     //最後把錢給同學,叫同學去買飯,呼叫同學的買飯方法返回乙份飯

特點:乙個委託變數可以繫結多個方法,也叫多播,就是把多個放法用+=的方式賦給乙個委託變數,這個變數呼叫的時候會按順序執行所有繫結在它上邊的方法,如果中途有乙個方法報異常無法執行,則不在繼續執行後邊的方法。

我,眼中的詩歌

我,眼中的詩歌 給我一杯茶,乙個幽靜的地方,我好看些詩歌。寫前面 詩歌是一種態度。詩歌是燕子低低地飛過屋簷。詩歌是古代西方 盛行的決鬥。詩歌是人類本身一直都存在的 極為樸素的一種本能。詩歌和性別無關 和身材無關,和你曾看過多少書也沒有直接的 聯絡,造物主將嘴巴賦予人類的同時 也賦予了人類詩歌。詩歌是...

我眼中的Spring MVC

spring mvc 是應用於web應用程式 mvc架構的 c 首先說一下spring mvc框架文件中的一句話 對擴充套件開放 對修改閉合 那麼特點就來了 高擴充套件性 這是它最大的特點還有 友好的設計的結構,思想,引數繫結,允許其他mvc的實現等等 總的來就是簡單易用 在這裡只是簡單介紹一下有哪...

我眼中的OpenFlow

我眼中的openflow可能不是那麼全面,只有3點,然而它們確實是openflow最吸引我的地方 伺服器可以虛擬化,雖然同駐足在一台硬體裝置內,然而彼此之間卻可以不受影響得執行,一台虛擬化機器崩潰了不會影響別的,一台虛擬機器中了病毒其它的可以不必擔心,這確實是一大亮點,可是在sdn出現以前,網路就一...