亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

.NET中Delegate內部原理的示例分析

發布時間:2021-10-14 09:33:03 來源:億速云 閱讀:85 作者:小新 欄目:開發技術

小編給大家分享一下.NET中Delegate內部原理的示例分析,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!

先通過一個簡單的demo來復習一下委托: 

代碼如下:


using System;
 using System.Collections.Generic;
 using System.Linq;
 using System.Text;
 using System.Threading.Tasks;

 namespace _01Delegate
 {
     //約束的指向方法的簽名,也就是一個強類型的指針
     public delegate int AddDele(int a, int b);

     class Program
     {
         static void Main(string[] args)
         {
             //定義一個委托變量,注意指向第一個方法的時候一定要用new關鍵字 后面的可以用+=
             AddDele delStatic = new AddDele(Add);
             //使用委托:靜態方法的委托
             Console.WriteLine(delStatic(3, 4));

             //實例方法的委托
             Program p = new Program();
             AddDele delInstance = new AddDele(p.AddInstance);
             //輸出:9
             Console.WriteLine(delInstance(4, 5));

             Console.ReadKey();
         }

         //靜態方法
         static int Add(int a, int b)
         {
             return a + b;
         }

         //實例方法
         public int AddInstance(int a, int b)
         {
             return a + b;
         }
     }
 }


  上面代碼中,分別使用委托對靜態方法和實例方法進行調用,如果這段代碼看起來還是很吃力的話,建議就我前面提供的鏈接好好的鞏固一下委托的相關內容。

  開始重點:委托的內部構造

  委托內部可以分為三個部分:分別為_target,_methodPtr和委托鏈;(拿上面的demo為例)

  _target:顧名思義,就是委托的目標函數,如果是靜態方法的話,_target就為null;如果是實例方法的話,_target指向的就是當前的實例,上例中delInstance的_target的值為p(Program的實例);

  _methodPtr:方法指針,指向的是內存中該方法的地址;

  委托鏈:通過+=操作形成的委托鏈,其實指向的就是一個個的方法;

  我簡單的畫了一張圖來描述委托內部構造:(如下)
.NET中Delegate內部原理的示例分析
以上是“.NET中Delegate內部原理的示例分析”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

南安市| 巢湖市| 宁德市| 桐城市| 东方市| 临澧县| 崇义县| 外汇| 台中市| 抚顺县| 江门市| 元朗区| 锡林郭勒盟| 晋宁县| 浦县| 唐河县| 彩票| 漠河县| 湖南省| 潼关县| 潜山县| 苍山县| 定西市| 临漳县| 镶黄旗| 金寨县| 洛阳市| 会理县| 万山特区| 河北省| 洛川县| 龙川县| 常熟市| 满洲里市| 通渭县| 天门市| 新巴尔虎左旗| 封开县| 龙井市| 六安市| 兴义市|