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

溫馨提示×

溫馨提示×

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

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

Lambda表達式和匿名方法有哪些區別

發布時間:2021-12-03 17:26:51 來源:億速云 閱讀:143 作者:小新 欄目:編程語言

這篇文章主要為大家展示了“Lambda表達式和匿名方法有哪些區別”,內容簡而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領大家一起研究并學習一下“Lambda表達式和匿名方法有哪些區別”這篇文章吧。

其實,Lambda表達式和匿名方法沒多大區別,它們根本就是一件事。要說唯一的區別就是:他們語法表現形式不同。Lambda 表達式是在語法方面的更進一步的進化,僅此而已。因此我們要了解Lambda表達式就應該同時也了解匿名方法。

下面先看一個簡單的代碼例子,分別用匿名方法和Lambda 表達式來實現對數組的搜索:

使用 .net 2.0 的匿名方法來搜索字符串數組中包含 a 的字符串數組

static void Main(string[] args)

{

string[] list = new string[] { "abc", "12", "java" };

string[] ll = Array.FindAll(list,

delegate(string s)

{

return s.IndexOf("a") >= 0;

}

);

foreach (string var in ll)

{

Console.WriteLine(var);

}

Console.ReadLine();

}

使用 .net 3.5 的Lambda表達式來搜索字符串數組中包含 a 的字符串數組

static void Main(string[] args)

{

string[] list = new string[] { "abc", "12", "java" };

string[] ll = Array.FindAll(list, s => (s.IndexOf("a") >= 0));

foreach (string var in ll)

{

Console.WriteLine(var);

}

Console.ReadLine();

}

從上述兩個例子我們可以看出:

從代碼書寫角度,代碼可讀性角度來說:Lambda表達式 比匿名方法更簡單了。

而 Lambda表達式 和 匿名方法都是干的同一件事情,讓我們少寫一個函數定義。函數的調用和函數的實現在一起完成了。

Lambda表達式的書寫格式如下:

(參數列表) => 表達式或者語句塊

其中:

參數個數:可以有多個參數,一個參數,或者無參數。

參數類型:可以隱式或者顯式定義。

表達式或者語句塊:這部分就是我們平常寫函數的實現部分(函數體)。

一些Lambda表達式的書寫范例:

有兩個參數的 Lambda表達式例子:

注:別看比較復雜,LINQ中實際把 下述代碼中的 delegate ,DoSomeThing 替你做了,所以你寫代碼的時候只需要寫

vart = DoSomeThing(7, 8, (x, y) => x * y); 這么一行。

public delegate T HongJunGuoTest01(T t1, T t2);

class Program

{

private static T DoSomeThing(T t1,T t2,HongJunGuoTest01 match)

{

return match(t1, t2);

}

static void Main(string[] args)

{

var t = DoSomeThing(7, 8, (x, y) => x * y);

Console.WriteLine(t);

Console.ReadLine();

}

}

下面這些寫法也是對的(你只需要修改Main函數中的代碼,其他地方不需要動):

var t = DoSomeThing(7, 8, (int x, int y) => x * y);

var t = DoSomeThing("7", "8", ( x, y) => x + y);

或者我們寫一個更復雜的: => 右邊是一段語句塊。

var t = DoSomeThing(7, 8, (x, y) => { if (x < 5) { return (x + 8) * y; } else { return y; } });

最前面的例子是一個參數的例子,我們就不舉一個參數的例子了,下面舉一個沒有參數的例子:

public delegate void HongJunGuoTest02();

class Program

{

private static void DoSomeThing(HongJunGuoTest02 match)

{

match();

}

static void Main(string[] args)

{

DoSomeThing(() => Console.WriteLine("jajaja"));

Console.ReadLine();

}

}

以上是“Lambda表達式和匿名方法有哪些區別”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!

向AI問一下細節

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

AI

通城县| 大足县| 淮安市| 鄂伦春自治旗| 丰原市| 揭西县| 钟祥市| 邻水| 中方县| 思茅市| 云梦县| 奉节县| 定远县| 南涧| 呈贡县| 宝山区| 龙游县| 新源县| 读书| 神农架林区| 原阳县| 河西区| 和硕县| 茌平县| 城步| 依安县| 禄劝| 丹寨县| 泰州市| 唐海县| 台安县| 贵阳市| 白沙| 西贡区| 临汾市| 磴口县| 宁波市| 清水河县| 五大连池市| 哈尔滨市| 嘉禾县|