C#中委託,匿名函數,lamda運算式複習

來源:互聯網
上載者:User

標籤:main   答案   void   code   ice   委託   匿名   size   簡單   

一、委託

           1.就給類比較,類用class聲明,委託用delegate聲明。

   2.委託要指向一個真正的方法。

           3.委託的簽名,要和指向的方法一樣。

     //1.聲明一個委託        public delegate void DelSayHi(string name);       public static void SayHiChinese(string name)        {            Console.WriteLine("你好?" + name);        }        public static void SayHiEnglish(string name)        {            Console.WriteLine("Nice to meet you" + name);        }           static void Main(string[] args)        {            //2.執行個體化委託,指向一個方法            DelSayHi del = new DelSayHi(SayHiChinese);            //DelSayHi del =SayHiChinese;寫法二            //調用            del("張三");         }

這種寫法,可能會有疑問,還不如直接去調用了。且往下邊繼續看。

       //1.聲明一個委託        public delegate void DelSayHi(string name);        static void Main(string[] args)        {              //2.指向方法            Test("張三", SayHiChinese);            Test("TOM", SayHiEnglish);        }        public static void Test(string name,DelSayHi del)        {             //3.調用            del(name);        }        public static void SayHiChinese(string name)        {            Console.WriteLine("你好?" + name);        }        public static void SayHiEnglish(string name)        {            Console.WriteLine("Nice to meet you" + name);        }

這一次,我中間又封裝了一個方法,這次將方法當成一個參數傳到另一個方法裡。記得剛開始接觸委託時,就是成天鼓搗這句話。

二、匿名函數

       按上面的寫法,假如說,我只會用到這個方法一次,那麼有沒有更簡潔的寫法。答案是有。

  public delegate void DelSayHi(string name);        static void Main(string[] args)        {            DelSayHi del = delegate (string name) //匿名函數            {                Console.WriteLine("你好" + name);            };            del("張三");        }

這種寫法叫做匿名函數。

三、lamda運算式

其實還有更簡單的寫法

  public delegate void DelSayHi(string name);        static void Main(string[] args)        {            DelSayHi del =   DelSayHi del = (string name) => { Console.WriteLine("你好" + name); }; //lamada運算式            del("張三");        }

這種寫法就是lamda運算式。

其實匿名函數和lamda都是委託。

 

C#中委託,匿名函數,lamda運算式複習

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.