.net基礎掃盲-小例子串委託、匿名方法、lamuda運算式

來源:互聯網
上載者:User

標籤:拉姆達運算式   c#   

我把委託理解為:委託是一種方法的格式,當然他也是一種類型。

只要是方法的格式跟委託定義的格式是一樣的,那麼就可以把該方法附加給該委託。看以下demo

 

聲明委託:

<p style="margin:0in;font-family:微軟雅黑;font-size:12.0pt"></p><pre name="code" class="csharp">public delegate void Add(int a,int b );


聲明一個格式相同的方法:

        static void OtherMethod(int a ,int b)        {            Console.WriteLine(a+b);        }

給類聲明一個委託類型的成員變數

public class Person    {        public string Name { set; get; }        public string Age { set; get; }        public Add MyAdd ;    }

將方法附加給委託,調用,測試如下:

static voidMain(string[] args){    Person p1 =new Person ();    p1.MyAdd = OtherMethod;    p1.MyAdd(7, 8);     Console.ReadLine();}

控制台輸出—— 15

 

如果我們定義的OtherMethod不常用,就沒有必要單獨聲明一個方法。可以用匿名方法,即:在給委託附加方法的時候,直接構造一個跟委託格式相同的匿名方法就可以了:

寫法如下:

p1.MyAdd = delegate(inta, int b) { Console.WriteLine(a + b); };

匿名方法,顧名思義,沒有方法名,只有方法參數和方法的演算法,可真是夠簡單了。


同樣我們也可以直接用lamuda運算式,直接構造一個方法,如下:

 p1.MyAdd = (int a, int b) => {Console.WriteLine(a + b); };

匿名方法和拉姆達運算式的出現,使得寫方法變得更加簡便了。



.net基礎掃盲-小例子串委託、匿名方法、lamuda運算式

聯繫我們

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