日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > C# >内容正文

C#

浅谈C#中的委托

發布時間:2025/4/5 C# 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 浅谈C#中的委托 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

在c++中被稱為安全的函數指針,c#中叫做委托,簡單理解就是把一個方法作為參數傳到另一個方法中;

委托,是一個類靜態(?static?Delegete),繼承自multicaseDeletgete(多路廣播委托),事實上它不是把一個方法中的方法體直接傳到另一個方法中,而是把方法的指針放到了委托對象中,執行委托就執行了清單中的方法

1,定義一個委托:訪問修飾符?void?Delegete?委托對象名(參數列表)

一個方法要想放到委托對象中,就必須符合委托對象定義的格式.

每個委托對象中有兩個主要的變量:Internal?Intptr_method和一個obj類型的數組;

只有當第一次調用委托時,就把方法的指針放到??Internal?Intptr_method中,構造函數調用委托對象的時候,執行此方法;

obj數組里放的就不是指針了,而是委托對象,當追加一個方法的時候,先把方法編譯成一個委托對象,然后存放到這個數組中;

委托中關于+=和-=的問題:

+=是一種語法糖,編譯成了combine方法,這個方法有兩個參數,委托容器,和委托對象,功能就是把委托對象放到委托容器中,每次+=的時候都把方法放到委托容器中,返回值是一個Delegete類型,每次+=就把上次的委托類型對象覆蓋掉,這時委托對象中的數組的長度是上次的長度+1,所以不用考慮這個數組的長度.

調用委托時:

簡單的寫法是直接寫??委托變量();

其實這種寫法在編譯時編譯成了委托變量的invoke方法.

轉載于:https://www.cnblogs.com/helloworldbby/archive/2012/10/07/2714354.html

總結

以上是生活随笔為你收集整理的浅谈C#中的委托的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。