<rp id="wnpn7"><ruby id="wnpn7"></ruby></rp>
<progress id="wnpn7"><track id="wnpn7"><rt id="wnpn7"></rt></track></progress>
<ruby id="wnpn7"></ruby>
<ruby id="wnpn7"><blockquote id="wnpn7"><div id="wnpn7"></div></blockquote></ruby>

    1. <em id="wnpn7"><ruby id="wnpn7"><input id="wnpn7"></input></ruby></em>
      1. <button id="wnpn7"><acronym id="wnpn7"></acronym></button><button id="wnpn7"><acronym id="wnpn7"></acronym></button>

        <rp id="wnpn7"><acronym id="wnpn7"></acronym></rp>

        <li id="wnpn7"><object id="wnpn7"><u id="wnpn7"></u></object></li>
        VB.net 2010 視頻教程 VB.net 2010 視頻教程 python基礎視頻教程
        SQL Server 2008 視頻教程 c#入門經典教程 Visual Basic從門到精通視頻教程
        當前位置:
        首頁 > 編程開發 > c#教程 >
        • C#教程之C# Lambda表達式簡介

        本站最新發布   C#從入門到精通
        試聽地址  
        http://www.squ68.com/eschool/CSharpxin3721/

        1.簡介

        定義:"Lambda表達式"是一個匿名函數,是一種高效的類似于函數式編程的表達式

        好處:Lambda簡化了匿名委托的使用,減少開發中需要編寫的代碼量。

        具體內容:它可以包含表達式和語句,并且可用于創建委托或表達式目錄樹類型,支持帶有可綁定到委托或表達式樹的輸入參數的內聯表達式。

        寫法:所有Lambda表達式都使用Lambda運算符=>,該運算符讀作"goes to"。Lambda運算符的左邊是輸入參數(如果有),右邊是表達式或語句塊。Lambda表達式x => x * x讀作"x goes to x times x"。

         

        2.輸入參數

        在Lambda表達式中,輸入參數是Lambda運算符的左邊部分。它包含參數的數量可以為0、1或者多個。只有當輸入參數為1時,Lambda表達式左邊的一對小括號才可以省略。輸入參數的數量大于或者等于2時,Lambda表達式左邊的一對小括號中的多個參數之間使用逗號分隔。

        例如:

        m=>m*5;  
        (m,n)=>m+n;
        ()=>Console.WriteLine("Lambda"); //沒有參數時,小括號不能省略
        

         

        3.表達式或者語句塊

        多個Lambda表達式可以構成Lambda語句塊。語句塊可以放到運算符的右邊,作為Lambda的主體。根據主題不同,Lambda表達式可以分為表達式Lambda和語句Lambda。語句塊中可以包含多條語句,并且可以包含循環、方法調用和if語句等。

        例如:

        //當右邊出現多個表達式,需要用大括號
        (m,n)=>{int result=m*n; Console.WriteLine(result);} 
        

        下面是一個簡單的例子:

         

        4.如何使用lambda表達式簡化委托

        這是一個delegate 委托:

        簡化:

        可以把

        p=>p+10;

        替換為一個復雜的表達式:

        Lambda表達式”是委托的實現方法,所以必須遵循以下規則:

        1)“Lambda表達式”的參數數量必須和“委托”的參數數量相同;

        2)如果“委托”的參數中包括有ref或out修飾符,則“Lambda表達式”的參數列中也必須包括有修飾符;

         

        5.Lambda 表達式中的變量范圍:

        捕獲的變量將不會被作為垃圾回收,直至引用變量的委托超出范圍為止。

        在外部方法中看不到 Lambda 表達式內引入的變量。

        Lambda 表達式無法從封閉方法中直接捕獲 ref 或 out 參數。

        Lambda 表達式中的返回語句不會導致封閉方法返回。

        Lambda 表達式不能包含其目標位于所包含匿名函數主體外部或內部的 goto 語句、break 語句或 continue 語句。

        Lambda表達式的本質是“匿名方法”,即當編譯我們的程序代碼時,“編譯器”會自動將“Lambda表達式”轉換為“匿名方法“

         
        相關教程
                
        免费看成年人视频大全_免费看成年人视频在线观看