c 中delegate和事件

2021-07-11 13:08:37 字數 1513 閱讀 9942

c#中delegate被稱作是「委託」,類似c++中的函式指標,委託也可以指向乙個函式,但是不同的是,委託可以被理解為乙個列表,裡面的元素是一系列返回型別和參數列都相同的函式,之後就可以像使用變數一樣使用函式。system中有很多預先定義好的委託型別可以直接被呼叫,比如eventhandler就是事件的委託型別。

事件是一種委託變數,裡面可以接受在不同情況下註冊的事件,迴圈呼叫裡面的每乙個函式,比如下面的例子中在main中和在people類中分別註冊了boiled事件,分別給他寫了觸發時的方法,而在boil原型中則說明了boiled事件在什麼條件下會被觸發。

using system;

using system.collections.generic;

using system.linq;

using system.text;

using system.threading.tasks;

using system.threading;

namespace sayhello

private set

}public void beginboilwater() //timer的四個引數,第乙個是乙個引數型別為object的函式,表示的是每次計時器被呼叫時的操作,第二個引數是傳給第乙個函式的變數,第三個引數是指timer從new到第一次生效所經歷的時間,第四個引數是timer的呼叫週期

public void boil(object o)

if(_temperature > 100)

t.dispose(); //timer被銷毀

t = null;}}

}public class people //people就是對事件的外部觀察者

}public void boilwater() //先註冊事件,後面表示事件被觸發時的操作

private void b_temperaturechanged(object sender, eventargs e)

", b.temprature);

}private void b_boiled(object sender, eventargs e)

}}

using system;

using system.collections.generic;

using system.linq;

using system.text;

using system.threading.tasks;

namespace sayhello

return 0;

}private static void boiler_boiled(object sender, eventargs e)

}}

C 代表(delegate)和事件 event

代表 delegate 它是c 語言裡面的函式指標,代表可以指向某乙個函式,在執行的時候呼叫這個函式的實現。下面來看看它的實現步驟 宣告乙個delegate物件。實現和delegate具有相同引數和返回值的函式實現 可以是靜態和非靜態的 產生乙個delegate物件的時候,把你剛剛實現的函式作為引數...

C 代表(delegate)和事件 event

代表和事件是使用c 語言兩個非常重要的概念,如果你不會使用代表和事件,那就說明你不會用c 進行軟體開發。代表 delegate 它是c 語言裡面的函式指標,代表可以指向某乙個函式,在執行的時候呼叫這個函式的實現。下面來看看它的實現步驟 宣告乙個delegate物件。實現和delegate具有相同引數...

C 代表(delegate)和事件 event

代表 delegate 它是c 語言裡面的函式指標,代表可以指向某乙個函式,在執行的時候呼叫這個函式的實現。下面來看看它的實現步驟 宣告乙個delegate物件。實現和delegate具有相同引數和返回值的函式實現 可以是靜態和非靜態的 產生乙個delegate物件的時候,把你剛剛實現的函式作為引數...