Event and Delegate
阿新 • • 發佈:2019-04-20
private tps pre += som function fun 編譯 委托
文章著作權歸作者所有。轉載請聯系作者,並在文中註明出處,給出原文鏈接。
本文原更新於作者的github博客,這裏給出鏈接。
委托
委托的實質是一個類。
// 委托定義 delegate ReturnType DelegateName([parameters]); // 委托聲明 DelegateName delegateInstance = new DelegateName(); // 委托賦值 delegateInstance = delegateFunctionName1; // 綁定/解綁委托 delegateInstance += delegateFunctionName2; delegateInstance -= delegateFunctionName1;
事件
事件是封裝了委托的類。
當事件被聲明為類的內部成員時,它總會被編譯為private類型,即無法使用=賦初值,只有+=和-=操作。
delegate ReturnType DelegateName([parameters]);
// 事件聲明
event DelegateName eventName;
// 添加/刪除事件
eventName += event1;
eventName -= event2;
事件委托與匿名方法、lambda表達式
delegate ReturnType DelegateName([parameters]); // 匿名方法 DelegateName delegateInstance = delegate([parameters]){ return something; }; // lambda表達式 DelegateName delegateInstance = ([parameters]) => { return something; }; DelegateName delegateInstance = ([parameters]) => { return something; }; DelegateName delegateInstance = parameter => { return something; }; DelegateName delegateInstance = parameters => something ;
應用
Observer Pattern(觀察者模式)
Event and Delegate