Delegate(委派)
參考MSDN:http://msdn.microsoft.com/zh-tw/library/ms173171.aspx
先來看看幾個說明:
- A delegate is a type that enables you to store references to function.
- A delagate is a variable type that enables you to use functions indirectly.
- A delagate can be used to call any function that matches the return type and parameters defined by delegate, giving you the ability to choose between several functions at runtime.
Delegate的使用方式需要宣告函式(function)的回傳值型別(return type)和參數列表(parameter list),用起來就好像宣告變數一樣。像是這樣:
delegate double ProcessDelegate(double param1, double param2);
宣告(declaration)完之後,可以把這個delegate當作型態來宣告一個變數(variable),也可以將delegate設定為具有相同回傳值型別(return type)和參數列表(parameter list)的函式,設定方式必須用關鍵字new的方式,和變數指定給值的方式不太一樣。太神了吧!把函式當變數來使用...(以前學C++好像沒這種觀念),像是這樣:
double RefernceFunction(double param1, double param2) { //程式碼 } ProcessDelegate p;//宣告delegate變數p p=new ProcessDelegate(RefernceFunction);//指定p的值 p(argu1,argu2);//呼叫RefernceFunction執行,其引數為argu1,argu2。
一旦上述設定完成,你就可以設定delegate的變數(因為delegate是function,需要傳入引數(argument),其實觀念是相同的),這時候所對映的function就會自動被呼叫執行。
沒有留言:
張貼留言