c 之委託和事件

2022-02-04 15:55:51 字數 1527 閱讀 4462

一:委託簡介

委託是一種指標,保持方法的引用

委託使得方法可以作為引數進行傳遞

如:

public delegate void mydelegate();

class program

static void main(string args)

}

委託其實是一種特殊的類

他定義了方法的簽名

使得與該簽名相同的方法都能被此委託所引用

有了這個特性就可以把方法當作引數進行傳遞

二:匿名方法

委託可以不用已存在的方法建立

public delegate void mydelegate();

class program

;a();

console.readkey();}}

匿名方法在lambda表示式出來之後,更見鋒芒,以後再說

委託可以繫結匿名方法,例項方法和靜態方法

三:多播委託

委託支援操作符過載

可以將多個方法繫結到同乙個委託

也可以從乙個委託移除某一方法

可以把乙個方法繫結多次,執行時也會執行多次

public delegate void mydelegate();

class program

private static void sayhellow2()

static void main(string args)

}

乙個委託例項指向多個方法,這些方法是無序的,設計時不要依賴這種順序

四:事件

可以不用初始化事件就直接用+=操作符繫結方法

觀察者模型(此方法jimmyziyang原創,此處做了適當修改,在此表示感謝)

public delegate void boiledeventhandler(object sender,boliedeventargs e);

public class boliedeventargs : eventargs

}public class heater

}public void boilwater()}}

}public class alarm

-", heater.area, heater.type);

console.writeline("alarm:水已經到度了", e.temperature);

console.writeline();}}

public class display

-", heater.area, heater.type);

console.writeline("display:水快燒開了,當前溫度", e.temperature);

console.writeline();}}

class program

}

輸出結果

本文編寫過程中得到了  鈞梓昊逑  的幫助,在此表示感謝!

c 之委託和事件

一 委託簡介 委託是一種指標,保持方法的引用 委託使得方法可以作為引數進行傳遞 如 public delegate void mydelegate class program static void main string args 委託其實是一種特殊的類 他定義了方法的簽名 使得與該簽名相同的方法...

C 事件和委託

c 程式設計中的事件驅動是說應用程式的執行流程是由外界發生的事件確定的。也就是接受到任務再工作的模式。事件是乙個訊號,它告知應用程式有重要的事情發生。真正的執 況是,各個應用程式把負責不同功能的物件在其執行期間送入windows作業系統,讓這些物件等待windows產生事件。然後加以處理,windo...

C 委託和事件

什麼是委託?委託和事件這兩個概念是完全配合的。委託僅僅是函式指標,那就是說,它能夠引用函式,通過傳遞位址的機制完成。委託是乙個類,當你對它例項化時,要提供乙個引用函式,將其作為它建構函式的引數 先看示例 例中先申明乙個委託,例如 public delegate void somedelegate s...