人人做人人澡人人爽欧美,国产主播一区二区,久久久精品五月天,羞羞视频在线观看免费

當前位置:蘿卜系統下載站 > 技術開發教程 > 詳細頁面

C#中的代理(delegate)

C#中的代理(delegate)

更新時間:2022-09-03 文章作者:未知 信息來源:網絡 閱讀次數:

有些書上也稱“代表”或“委托”。
     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();

溫馨提示:喜歡本站的話,請收藏一下本站!

本類教程下載

系統下載排行

網站地圖xml | 網站地圖html
主站蜘蛛池模板: 台山市| 马公市| 佛冈县| 江津市| 剑川县| 英超| 靖安县| 辽宁省| 马鞍山市| 双辽市| 湾仔区| 西畴县| 嘉鱼县| 曲沃县| 涞源县| 临澧县| 浮梁县| 丰宁| 额尔古纳市| 特克斯县| 平舆县| 普兰县| 沂水县| 鄯善县| 扎鲁特旗| 黎城县| 牡丹江市| 个旧市| 寿阳县| 宣化县| 手游| 股票| 洱源县| 大余县| 林甸县| 沙雅县| 石台县| 南木林县| 亚东县| 盘山县| 合山市|