委託的學習

2021-06-26 21:35:15 字數 1421 閱讀 8309

 委託

什麼是委託,怎麼去定義乙個委託,還有委託的呼叫。(概念)

委託的使用

lambda

擴充套件方法

方法傳方法

匿名方法 委託

是使用者定義的一種資料型別

其型別是用來存放方法指標的,就是委託包含的是方法的位址。

定義乙個委託

思考以前我們定義乙個類的時候

有乙個關鍵字

還有就是類的名稱,而類裡面包含的是一些資料

。那麼由於委託也是一種資料型別而且還是一種存放方法位址的資料型別,所以定義委託就得像定義類一樣定義委託。定義委託的關鍵字是

delegate

後面的是存放方法的返回型別

說白了後面就像是方法一樣就是沒有實現的部分。 例如

public delegate int deladd(int a ,int b);

下面我們說下怎麼去使用委託。

我們知道

類是引用型別所以類的使用是需要例項化,同樣委託也是引用型別

所以使用委託也要例項化,

deladd add=newdeladd();

其deladd

就相當於委託的名稱,當我們要呼叫委託時候就直接呼叫例項委託變數,當執行的時候就會直接指向委託所存放方法位址,也就執行了方法。

所以我們理順下委託使用的整個過程。 第一

定義乙個委託

delegate

方法的返回型別

委託的名稱引數

第二例項化乙個委託或給委託賦值

委託名稱

例項化的名稱

=new

委託名稱

後面跟方法

委託名稱

委託變數名稱=方法

第三呼叫委託

例項委託的名稱

或委託變數的名稱

(實際的引數

)注意:給委託新增方法的時候時要注意,如果新增的是例項方法就必須例項化方法所在的類

而新增靜態方法則可以直接新增。

方法

匿名方法

在初始化委託時內聯宣告的方法

=delegate

(引數);

二擴充套件方法

擴充套件方法有三點

1宣告的擴充套件方法必須在

static類中

2宣告的方法必須是靜態方法 3

宣告的方法中必須包含有

this

關鍵字作為第乙個引數型別 三

lambda

表示式

我們希望用

lambda

表示式來代替匿名方法

(引數,引數)

(引數)

=>

方法體 引數

四方法中傳遞方法

對於方法傳方法

那麼方法的引數型別就是委託 :

委託的學習

委託的使用主要是為了解決不知道什麼時候可能觸發的這種事件而用的。我們舉個例子,假如你開了一家餐廳,除了日常的餐飲業務之外,還會有 訂餐等業務。訂餐的業務就可以委託給兒子,這個過程就叫做委託。兒子接完 可以告訴你,也可以不告訴你,這就看這個委託的型別。一 普通委託 比如我們要執行一兩個數的加法運算 第...

vb的委託學習

委託和事件 委託,這個詞一聽被邪乎。幾年前我還以為和律師什麼的有關係。可事實上 委託 就是system.delegate 類。它是乙個類,這就意味著它是乙個資料型別,而且是乙個引用型別。它能夠引用物件的方法 例項方法 和類的方法 靜態方法 在vb 裡的shared 方法 使用委託可以概括為三步 宣告...

C 委託的學習

看完 這一篇文章,大致了解了委託的概念,在此進行總結 首先 滿足乙個需求,根據客戶需要用不同語言版本輸出早上好,如果用列舉 會很複雜,這裡用委託會顯得很簡潔 委託 namespace 委託實現測試 private static void chinesegreeting string name 委託的...