通俗易懂大白話之C 委託與事件例項

2021-09-10 17:48:04 字數 1124 閱讀 2776

有關委託和事件的文章已經有很多, 之前看過一篇講的例項比較形象, 因此借鑑並加以改進一下, 希望能夠幫助還沒有過這道坎的同學;

借鑑文章: 

本文沒有任何概念介紹,旨在幫助同學們快速用上委託和事件,越過這道坎。

應用場景舉例:

劉備設鴻門宴, 吩咐關羽和張飛各自帶隊埋伏在門外,  劉備摔杯為號, 關羽和張飛則帶隊殺出;

關羽和張飛殺出的具體過程, 他們自己實現即可.

但劉備會不會摔杯, 什麼時候摔杯 劉備自己也不知道..得看情況..

所以當然不能用傳統方式, 在劉備摔杯的方法裡面呼叫關羽和張飛的殺出方法,

如果劉備(boss)臨時變卦, 要多安排趙雲,馬超,黃忠等等眾多將領在門外呢?

那劉備的摔杯方法豈不是要呼叫所有將領的殺出方法?

這樣寫**要傳遞眾多將領物件, 劉備的摔杯方法會進行無盡的修改和完善,顯然不是我們所希望的。

使用委託和事件的實現方式:

首先定義劉備,關羽,張飛3個類:

劉備有摔杯的委託和事件, 以及摔杯方法;

關羽和張飛則有殺出方法;

public class 劉備

}public class 關羽

}public class 張飛

}

那麼為了方便大家理解註冊事件,  也就是關羽和張飛接受劉備的摔杯為號的約定, 我們先這樣寫:

static class program

}

最終完整**如下:

(下面**註冊事件改為在物件內部實現)

sing system;

namespace test

}public class 劉備

}public class 關羽

public bool 殺出(string str)

}public class 張飛

public bool 殺出(string str)

}}

程式拓展也非常方便, 定義好新將領的類並實現殺出方法即可, 和關羽張飛**類似;

使用設計模式的話,  可以建立乙個將領的父類, 實現基本的殺出方法. 如果個別將領有特別的殺出方法, 重寫殺出方法即可.

如果有不對的地方歡迎指出 

大白話C 委託與事件

委託機制,是c 語言很重要的機制。從序言中,大家應該對委託和事件的重要性有點了解了吧,雖然說我們現在還是能模糊,但是從我的大白話系列中,我會把這些概念說的通俗易懂的。首先,我們還是先說說委託吧,從字面上理解,只要是中國人應該都知道這個意思,除非委託2個中文字不認識,舉個例子,小明委託小張去買車票。但...

大白話系列之C 委託與事件講解 一

從序言中,大家應該對委託和事件的重要性有點了解了吧,雖然說我們現在還是能模糊,但是從我的大白話系列中,我會把這些概念說的通俗易懂的。首先,我們還是先說說委託吧,從字面上理解,只要是中國人應該都知道這個意思,除非委託2個中文字不認識,舉個例子,小明委託小張去買車票。但是在我們的程式世界裡,也是這麼的簡...

大白話系列之C 委託與事件講解 一

從序言中,大家應該對委託和事件的重要性有點了解了吧,雖然說我們現在還是能模糊,但是從我的大白話系列中,我會把這些概念說的通俗易懂的。首先,我們還是先說說委託吧,從字面上理解,只要是中國人應該都知道這個意思,除非委託2個中文字不認識,舉個例子,小明委託小張去買車票。但是在我們的程式世界裡,也是這麼的簡...