六月婷婷综合激情-六月婷婷综合-六月婷婷在线观看-六月婷婷在线-亚洲黄色在线网站-亚洲黄色在线观看网站

明輝手游網中心:是一個免費提供流行視頻軟件教程、在線學習分享的學習平臺!

C#中的代理(delegate)

[摘要]有些書上也稱“代表”或“委托”。 C#中取消了指針的概念。對指針戀戀不舍的程序員可以有兩種解決方法:聲明“非安全”(unsafe)代碼段然后在其中使用指針或者使用C#的一個引用類型——“代理”(delegate)�!按怼毕喈斉cC中的函數指針原型,區別是C#是類型安全的�!按怼保╠ele...
有些書上也稱“代表”或“委托”。
     C#中取消了指針的概念。對指針戀戀不舍的程序員可以有兩種解決方法:聲明“非安全”(unsafe)代碼段然后在其中使用指針或者使用C#的一個引用類型——“代理”(delegate)�!按怼毕喈斉cC中的函數指針原型,區別是C#是類型安全
的。

“代理”(
delegate)(代表、委托):“代理”是類型安全的并且完全面向對象的。
1)在C#中,所有的代理都是從System.Delegate類派生的(delegateSystem.Delegate
的別名)。
2)代理隱含具有sealed
屬性,即不能用來派生新的類型。
3
)代理最大的作用就是為類的事件綁定事件處理程序。
4)在通過代理調用函數前,必須先檢查代理是否為空(null),若非空,才能調用函數。5
)在代理實例中可以封裝靜態的方法也可以封裝實例方法。
6)在創建代理實例時,需要傳遞將要映射的方法或其他代理實例以指明代理將要封裝的函數原型(.NET中稱為方法簽名:signature)。注意,如果映射的是靜態方法,傳遞的參數應該是類名.方法名,如果映射的是實例方法,傳遞的參數應該是實例名.
方法名。
7
)只有當兩個代理實例所映射的方法以及該方法所屬的對象都相同時,才認為它們是想等的(從函數地址考慮)。
8)多個代理實例可以形成一個代理鏈,System.Delegate中定義了用來維護代理鏈的靜態方法CombionRemove
,分別向代理鏈中添加代理實例和刪除代理實例。
9)代理的定義必須放在任何類的外面,如delegate int MyDelegate();而在類的方法中調用MyDelegate d = new MyDelegate(MyClass.MyMethod)
;來實例化自定義代理的實例。
10
)代理三步曲:
 
a.生成自定義代理類:
delegate int MyDelegate();
 
b.然后實例化代理類:MyDelegate d = new MyDelegate(MyClass.MyMethod);
 
c.最后通過實例對象調用方法:int ret = d();




主站蜘蛛池模板: 欧美一区2区| 亚洲国产成人久久一区www | 淫片a武则天 | 午夜国产福利在线观看 | 亚洲网站在线免费观看 | 小明精品国产一区二区三区 | 欧美一级视频精品观看 | 亚洲影音 | 日韩a级毛片免费视频 | 午夜影院在线视频 | 天天狠天天透天干天天怕处 | 日本激情网站 | 欧美一区二区三区在线可观看 | 天天干夜夜添 | 亚洲an| 性感保姆正片 | 日本欧美高清全视频 | 桃花视频全免费观看韩国 | 青青草国产免费久久久下载 | 色色色色网站 | 日本一区二区高清免费不卡 | 五月深爱婷婷 | 青青在线精品视频 | 欧洲一区麻豆文化传媒 | 日本中文字幕乱码免费 | 中文字幕婷婷 | 特级aaa片毛片免费观看 | 日韩精品一区二区三区免费视频 | 日韩1页 | 亚洲成a v人片在线看片 | 中文字幕专区高清在线观看 | 色啪网 | 青青草视频在线观看免费 | 日本激情在线看免费观看视频 | 欧美一区二区三区久久久人妖 | 午夜免费看片 | 四虎影视在线影院www | 香蕉免费一区二区三区 | 日韩视频网 | 日韩黄a级成人毛片 | 欧美视频一区在线 |