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

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

C#中的代理(delegate)

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




主站蜘蛛池模板: 污污小视频在线观看 | 亚洲欧美国产人成在线app | 热久久最新地址 | 特黄特黄aaaa级毛片免费看 | 亚洲图片色| 天天看天天摸色天天综合网 | 色五丁香 | 少妇激情av一区二区 | 综合色综合 | 天堂在线最新版www中文 | 视频在线一区二区 | 日韩美女在线观看 | 天干天夜啪天天碰 | 四虎影视免费观看免费观看 | 综合激情婷婷 | 亚洲入口 | 日韩成片| 青草草| 中文字幕永久在线视频 | 欧美又大又粗又长又硬 | 最近更新免费中文字幕大全 | 西瓜影院日韩大片在线观看 | 四虎影院国产 | 青娱乐国产精品 | 中文字幕第99页 | 午夜精品视频在线观看美女 | 日本亚洲天堂 | 清清草视频在线 | 亚洲综合色播 | 日日弄 | 五月婷六月婷婷 | 日本卡一卡2卡3卡4精品卡网站 | 青青青国产在线观看免费网站 | 日本五级床片全部硬硬 | 欧美一级特黄刺激大片视频 | 亚洲爱爱图片 | 午夜视频在线观看182tv | 日本欧美特黄特色大片 | 日韩中文字幕在线看 | 在线国产你懂的 | 亚洲 欧美 精品专区 极品 |