清澈的小河邊有一棵木瓜樹。有一天,小兔子來到河邊玩,突然聽見「咕咚」一聲。嚇得小兔子趕緊就跑,邊跑邊喊「咕咚來了!」這時候,森林裡的小動物們都聽見啦!小羊,小豬,小馬,都邊跑邊喊「咕咚來啦!」
事件的型別是委託。事件由兩部分組成,觸發器和訂閱器。
小兔子聽見「咕咚」的聲音,觸發了所有小動物的呼喊。
首先定義委託 :
public delegate void gudongdelegate();
觸發器類:
1.在觸發器中宣告事件,使用event關鍵字。在protected方法裡判斷,事件是否為空,否則觸發事件。
public class listeninggudong}}
2.在觸發器類中定義方法,用以呼叫protected方法,而觸發事件:
public void listengudongcome(string name)
訂閱器類:
1.如果事件被觸發,且該物件有訂閱事件,則要執行訂閱器裡面的處理程式:
public class tellothers
public void animalaction()
}
主程式:
var gudong = new listeninggudong();//例項化觸發器
var xiaotu = new tellothers("小兔");//例項化訂閱器
var xiaozhu = new tellothers("小豬");
var xiaoyang = new tellothers("小羊");
var xiaoma = new tellothers("小馬");
gudong.gudongevent += xiaozhu.animalaction;//訂閱事件
gudong.gudongevent += xiaotu.animalaction;
gudong.gudongevent += xiaoyang.animalaction;
gudong.gudongevent += xiaoma.animalaction;
gudong.listengudongcome("小兔");//小兔聽見,觸發事件
執行結果:
取消訂閱,用「-」符號就行,第二次,小羊取消訂閱,所以第二次小羊沒喊:
gudong.gudongevent += xiaotu.animalaction;
gudong.gudongevent += xiaozhu.animalaction;
gudong.gudongevent += xiaoyang.animalaction;
gudong.gudongevent += xiaoma.animalaction;
gudong.listengudongcome("小兔");
gudong.gudongevent -= xiaoyang.animalaction;//取消訂閱
gudong.listengudongcome("小兔");
從c語言開始
c語言作為本人從湖南屌絲學院學到的第一門語言,學成不到乙個月,開始寫 畢業後放棄。雖然時間短,但是對本人將來寫 造成了很深遠的影響。人們都說他是一門面向過程 抽象畫的通用程式語言。第一 為什麼說他是面向過程 面向過程是區別於物件導向的。我們要做一件事情,規劃怎麼做,把做事情過程抽象成乙個乙個的步驟,...
C語言 從你好世界開始
再次系統學習一次c語言,拋掉一切從基礎開始。希望能一點點累積成為乙個能寫出漂亮專案的人啊!把上課睡的覺都補回來!以後再也不睡了嗚嗚嗚 無論什麼語言,都從最基礎的hello world 開始 c語言也不例外 上 include intmain 從頭再次看這個函式,才發現有些小細節一直忘了追究。好像經歷...
grep從檔案末尾開始找 c 開始之旅
1.這玩意怎麼學呢?學了很快就忘了,那四捨五入,不就等於沒學嗎?2.日常生活中這玩意有啥用呢?可不可以做些好玩的呢?或者高大上的。對於計算機型別的專業,大學中,基本上都會修c語言這門課程,但是c語言與c 還是有一點點區別。那麼可以通過看書去熟悉c 這門語言,然後通過一些日常的一些練習去熟悉學習的語法...