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

明輝手游網(wǎng)中心:是一個免費提供流行視頻軟件教程、在線學(xué)習(xí)分享的學(xué)習(xí)平臺!

C#中的代理(delegate)

[摘要]有些書上也稱“代表”或“委托”。 C#中取消了指針的概念。對指針戀戀不舍的程序員可以有兩種解決方法:聲明“非安全”(unsafe)代碼段然后在其中使用指針或者使用C#的一個引用類型——“代理”(delegate)。“代理”相當(dāng)與C中的函數(shù)指針原型,區(qū)別是C#是類型安全的。“代理”(dele...
有些書上也稱“代表”或“委托”。
     C#中取消了指針的概念。對指針戀戀不舍的程序員可以有兩種解決方法:聲明“非安全”(unsafe)代碼段然后在其中使用指針或者使用C#的一個引用類型——“代理”(delegate)。“代理”相當(dāng)與C中的函數(shù)指針原型,區(qū)別是C#是類型安全
的。

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




相關(guān)文章

主站蜘蛛池模板: 亚洲综合色网 | 日韩一区二区在线免费观看 | 字幕网资源站中文字幕 | 亚洲免费高清 | 色综合久久中文字幕综合网 | 速度与激情9在线 | 日韩在线视频在线观看 | 婷婷开心中文字幕 | 伊人久久大香线蕉综合影 | 日韩中文在线观看 | 天天干天天曰天天操 | 天天做天天爱夜夜爽毛片毛片 | 在线观看男女爱视频网站 | 热热热热色 | 伊人久久综合影院首页 | 亚洲影院国产 | 一二三四日本高清免费看 | 亚洲精品乱码久久久久久中文字幕 | 日本免费看片在线播放 | 欧美亚洲丝袜 | 一级做a爰片久久毛片一 | 色偷偷狠狠色综合网 | 亚洲高清一区二区三区四区 | 亚洲国产精品高清在线一区 | 亚洲欧美在线精品 | 日本高清视频www | 深夜福利成人 | 五月婷婷六月色 | 欧美亚洲一区 | 人人噜人人爽 | 日韩啪啪网 | 热久久综合网 | 青青草国| 在线 色| 一级美女黄色片 | 视频在线a | 日本欧美激情 | 先锋在线资源站 | 日本a视频在线 | 日本亚洲欧美在线 | 视频一区精品 |