**:
在c#中使用乙個類時,分兩個階段。首先需要定義這個類,即告訴編譯器這個類由什麼欄位和方法組成。然後(除非只使用靜態方法)例項化類的乙個物件。使用委託時,也需要經過這兩個步驟。首先定義要使用的委託,對於委託,定義它就是告訴編譯器這種型別代表了那種型別的方法,然後建立該委託的乙個或多個例項。
定義委託是從delegate開始的然而它是如何運作的呢。也許弄個滑鼠事件會容易理解一些,這裡還是拿出例子來。
using system;
namespace wrox.profcsharp.advancedcsharp
; compareop employeecompareop = new compareop(employee.rhsisgreater);
bubblesorter.sort(employees, employeecompareop);
for (int i=0 ; iemplhs.salary) ? true : false;}}
class bubblesorter
public static bool rhsisgreater(object lhs, object rhs)
也就是說rhsisgreater的引數是匹配compareop存在的,引數中沒有直接使用employee這個type而是採用了一種通用的做法,全都弄成object需要的時候再做轉換,暫時還無法理解其深遠的意義,先記著了。估計是定義委託時不能用這些自定義的type吧。
那麼這段**是什麼時候執行的呢,注意看這段
static public void sort(object sortarray, compareop gtmethod)
; compareop employeecompareop = new compareop(employee.rhsisgreater);
bubblesorter.sort(employees, employeecompareop);
for (int i=0 ; iemplhs.salary) ? true : false;}}
class bubblesorter
{static public void sort(object sortarray, compareop gtmethod)
{for (int i=0 ; i
C 事件和委託
c 程式設計中的事件驅動是說應用程式的執行流程是由外界發生的事件確定的。也就是接受到任務再工作的模式。事件是乙個訊號,它告知應用程式有重要的事情發生。真正的執 況是,各個應用程式把負責不同功能的物件在其執行期間送入windows作業系統,讓這些物件等待windows產生事件。然後加以處理,windo...
C 委託和事件
什麼是委託?委託和事件這兩個概念是完全配合的。委託僅僅是函式指標,那就是說,它能夠引用函式,通過傳遞位址的機制完成。委託是乙個類,當你對它例項化時,要提供乙個引用函式,將其作為它建構函式的引數 先看示例 例中先申明乙個委託,例如 public delegate void somedelegate s...
C 委託和事件
要為類構造乙個事件,必須用 event 來宣告乙個 delegate 型的字段,如 puclic calss test 在建立類的例項後定義這個 load 事件 test m new test m.load new eventhandler m load void m load object sen...