有關委託和事件的文章已經有很多, 之前看過一篇講的例項比較形象, 因此借鑑並加以改進一下, 希望能夠幫助還沒有過這道坎的同學;
借鑑文章:
本文沒有任何概念介紹,旨在幫助同學們快速用上委託和事件,越過這道坎。
應用場景舉例:
劉備設鴻門宴, 吩咐關羽和張飛各自帶隊埋伏在門外, 劉備摔杯為號, 關羽和張飛則帶隊殺出;
關羽和張飛殺出的具體過程, 他們自己實現即可.
但劉備會不會摔杯, 什麼時候摔杯 劉備自己也不知道..得看情況..
所以當然不能用傳統方式, 在劉備摔杯的方法裡面呼叫關羽和張飛的殺出方法,
如果劉備(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個中文字不認識,舉個例子,小明委託小張去買車票。但是在我們的程式世界裡,也是這麼的簡...