學習筆記 委託解析和封裝,事件及應用

2022-02-12 01:18:47 字數 1535 閱讀 8091

1. 委託的本質: 是乙個類, 繼承自 system.multicastdelegate 裡面內建了幾個方法

noreturn委託 編譯後的il

1. 多播委託的 舉例

//貓叫一聲 觸發一系列後續動作

//多個 指定動作 正式不穩定原因, 封裝出去 甩鍋

public class cat

public void miao()

miao", this.gettype().name);

new mouse().run();

new baby().cry();

new dog().wang();

}//貓叫一聲 觸發一系列後續動作

//多個 指定動作 正式不穩定原因, 封裝出去 甩鍋

public void miaonew(miaodelegate miaodelegate)

miaonew", this.gettype().name);

if (miaodelegate != null)

miaodelegate.invoke();}}

public delegate void miaodelegate();

class mouse

run", this.gettype().name);}}

class baby

cry", this.gettype().name);}}

class dog

wang", this.gettype().name);}}

static void main(string args)

2.對事件的理解

事件 : 帶有event關鍵字的委託的例項, event可以限制變數被 外部呼叫/直接賦值

childclass:cat 也不可以對cat中的 event進行操作

從 il中可以看出  委託例項是public欄位, 而事件是 private欄位, 自然外部不可呼叫了

委託和事件的區別與聯絡?

委託的本質 是類, 就是乙個型別,比如 student類

事件 是委託型別的乙個例項 比如 同學a 是student的乙個例項

事件: 可以吧一堆可變的動作/行為 封裝出去, 交給外部制定, 預定義一樣,

程式設計時候, 可以把程式分為2部分, 固有部分寫死, 不固定部分開放介面,外部可隨意擴充套件

框架: 完成固定/通用部分, 把可變部分留出擴充套件點, 支援自定義

事件和委託解析

事件 event 物件將處於什麼樣的的場景,然後在該場景下會觸發什麼樣的動作 委託 delegate 1.委託的本質是類,類似函式指標,可以降低耦合性,提高安全性 2.可以實現多執行緒,非同步呼叫,函式等 3.委託可以呼叫靜態或非靜態的函式,使得可以的統一標準 4.多播委託 委託鏈 public d...

委託和事件學習筆記

委託本身可以使用賦值 name 委託 englishgreeting chinesegreeting 觀察者模式 public class greetingmanager 在客戶端,呼叫看上去更簡潔一些 static void main string args 輸出為 morning,jimmy z...

委託和事件學習筆記

class program class director 處理玩遊戲者 public void playgamehandler object sender,system.eventargs e class employee set 初始化員工類 public employee 開始玩遊戲了 publ...