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物件的時候,把你剛剛實現的函式作為引數...