.NET之委託

來源:互聯網
上載者:User

標籤:通過   method   回調   write   產生   ges   begin   blog   特性   

 

有些.NET中的進階特性,比如:委託!有一種怎麼也搞不懂的趕腳...部落格讀了好幾篇,代碼也動手寫了,書中的一些介紹也看了,各種搜尋關於委託的,至今還處於"會用"的階段。該怎麼研究一個進階特性,這是個問題。還是本來這些特性,你會用就可以了?

 

語言越多,感覺會越迷惑,自己想用最少的語言,最多的代碼來總結下委託這個東西;

 

0、delegate
1、類似於C++中的函數指標,安全的函數指標,提供了程式回調指定方法的機制。

2/委託既可以接受執行個體方法,也可以接受靜態方法;
using System;namespace _IT200.第6章_進階特性{    //這是一個委託,就這麼簡單的聲明了,然後知道怎麼用就可以了.    //就像年齡小的時候,不會喝酒,長大了喝幾次就會喝了...你和委託也就是差一個醉了...    public delegate void 委託我來監視這是第幾個方法(int i);    class 委託    {        public void method(int i)        {            Console.WriteLine("這是第{0}個方法..", i);        }        //靜態方法        public static void method_static(int i)        {            Console.WriteLine("這是第{0}靜態方法...", i);        }        static void Main()        {            Console.WriteLine("委託...");            委託 w = new 委託();            //接受執行個體方法            委託我來監視這是第幾個方法 委託執行個體 = new 委託我來監視這是第幾個方法(w.method);            //接受靜態方法            委託我來監視這是第幾個方法 委託執行個體_1 = new 委託我來監視這是第幾個方法(method_static);            //本質上,委託的調用其實就是執行了在定義委託時所產生的Invoke方法            委託執行個體(0);            //Invoke轉到定義是指向→"委託我來監視這是第幾個方法"            //Why?因為這個方法是由C#編譯器自動幫我們完成的,可以通過Reflector驗證一下↓            //:會發現還包含一個名為BeginInvoke和EndInvoke的方法。            委託執行個體.Invoke(1);            //委託執行個體(2); == 委託執行個體.Invoke(2);            Console.ReadKey();        }    }}

運行結果:

 

.NET之委託

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.