C 委託 應用例項

2022-03-14 07:11:25 字數 1086 閱讀 5093

用一句話解釋委託:委託是一種可以把引用儲存為函式的型別。

有些類似spring框架對於介面的用法,向action中注入service物件。action並不知道呼叫哪個服務層,只有容器通過配置檔案

向action注入service物件後,action才能知道呼叫的是哪個實現的服務層物件。

你傳入的是那個實現類,我就執行哪個實現類的方法。

從網上搜得一段說明,幫助理解:

委託和介面都允許類設計器分離型別宣告和實現。給定的介面可由任何類或結構繼承和實現;

可以為任何類中的方法建立委託,前提是該方法符合委託的方法簽名。介面引用或委託可由不了解實現該介面或委託方法的類的物件使用。

分析下面例子:首先對於乙個熱水器物件來說,他滿足一定條件的時候需要觸發乙個事件(委託),但這個事件不那麼確定或者不只呼叫乙個方法。

那麼我們就在這個物件中宣告乙個委託方法:

1

using

system;

2using

system.collections.generic;

3using

system.text;

4namespace

delegate524

}25}26

}27}28 }

然後,再定義處理這個事件的一些方法:

1

//警報器

2public

class

alarm

3 度了:

", param);7}

8 }

1

//顯示器

2public

class

display3度。

", param);7}

8 }

好了,一切準備好,我們利用註冊事件,呼叫這些委託的方法:

1

class

program

212 }

輸出為:

alarm:嘀嘀嘀,水已經 96 度了:

alarm:嘀嘀嘀,水已經 96 度了:

display:水快燒開了,當前溫度:96度。

委託應用例項

需求 根據傳入的action引數,自動構造與之對應的request。直接上 先定義乙個myrequest類。下有子類 addrequest,loadrequest,deleterequest。myrequest 1 public class myrequest24 public gridpagerp...

C 委託例項

委託是乙個特殊的類,它定義了方法的型別,可以將方法當作另乙個方法的引數來進行傳遞,這種方法動態地賦給引數的做法,可以避免在程式中大量使用if else switch 語句,同時也使得程式具有更好的擴充套件性。委託機制尤其適合在使用事件處理的程式設計模式或者類的靜態方法,以及在需要封裝和靈活的組織方法...

C 委託例項

下面是微軟給出的官方解釋,自行感受一下,本質就是把方法當作引數使用 delegate 是表示對具有特定引數列表和返回型別的方法的引用的型別。在例項化委託時,你可以將其實例與任何具有相容簽名和返回型別的方法相關聯。你可以通過委託例項呼叫方法。委託用於將方法作為引數傳遞給其他方法。事件處理程式就是通過委...