91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

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

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

C#中Lambda表達式的作用是什么

發布時間:2021-07-07 15:50:27 來源:億速云 閱讀:598 作者:Leah 欄目:編程語言

今天就跟大家聊聊有關C#中Lambda表達式的作用是什么,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結了以下內容,希望大家根據這篇文章可以有所收獲。

1. Lamdba 表達式是一個委托類型:

MethodInvoker invoker = () => { Console.WriteLine(); };  //is actually equal to the following form.    MethodInvoker invoker = delegate() { Console.WriteLine(); };  //這里是Lamdba 表達式的匿名委托的用法

2. Lamdba 表達式可以用作匿名方法

MethodInvoker invoker = new MethodInvoker(() => { Console.WriteLine(); });   //相當于:    MethodInvoker invoker = new MethodInvoker(MyFunc);    partial void MyFunc()    {      Console.WriteLine();    }

我們知道, 當構造一個新的委托的時候, 他的構造器需要一個函數指針作參數,這個函數指針是委托類型的

實際上,當我們這樣去new 一個委托的時候:

MethodInvoker invoker = new MethodInvoker(MyFunc);

"MyFunc" 就是一個委托,而不只是一個函數名的存在. 編譯器將為這個構造函數生成一個匿名委托:

MethodInvoker invoker = new MethodInvoker(delegate() { MyFunc(); });

可以這樣理解編譯器的行為: 匿名方法其實也就是委托。

那么為什么我們可以這么寫呢:

MethodInvoker invoker = () => { Console.WriteLine(); };

我們來看一看:

首先,這個委托的構造器需要一個委托參數,所以通常我們得這樣寫:

MethodInvoker invoker = new MethodInvoker(delegate() { MyFunc(); });

但是匿名的delegate 可以轉化成函數指針 (void() target):

所以這樣寫是可以的:

MethodInvoker invoker = new MethodInvoker(MyFunc);  //而匿名的委托又可以描述為Lambda表達式    MethodInvoker invoker = new MethodInvoker(() => { Console.WriteLine(); });  //另外一方面,由于編譯器對"寬松委托"的支持, MethodInvoker類委托可以轉化成匿名類委托:    MethodInvoker invoker = delegate() { Console.WriteLine(); };  //而匿名的委托又可以用Lambda表達式來描述    MethodInvoker invoker = () => { Console.WriteLine(); };

從上面,我們可以看到一個復雜的委托是如何轉化成簡潔的Lambda表達式的。這對程序員來說無疑又是提高生產力的一個體現!

看完上述內容,你們對C#中Lambda表達式的作用是什么有進一步的了解嗎?如果還想了解更多知識或者相關內容,請關注億速云行業資訊頻道,感謝大家的支持。

向AI問一下細節

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

AI

延川县| 焦作市| 衡阳市| 交城县| 连山| 镇江市| 南丰县| 翼城县| 黄骅市| 贺州市| 九江县| 榆社县| 甘洛县| 汝州市| 台东市| 稻城县| 克什克腾旗| 安远县| 麻阳| 海宁市| 扶风县| 瓦房店市| 化州市| 同心县| 木里| 阿拉善盟| 景德镇市| 普定县| 尼勒克县| 霞浦县| 闵行区| 宿州市| 江阴市| 太仆寺旗| 晋中市| 务川| 临湘市| 乌兰察布市| 呼和浩特市| 哈密市| 新余市|