歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux編程 >> Linux編程 >> C#中的Lambda表達式

C#中的Lambda表達式

日期:2017/3/1 9:46:10   编辑:Linux編程

在看C#中的Lambda表達式之前,先來看一個概念:匿名方法。學過Java的親們,可能對這個概念比較了解。Java JDK8中也引入了Lambda表達式。

下面看看C#中的匿名函數。下面是一個實例:

namespace ConsoleApplication
{
class AnonymousMethod
{

public static void Main()
{
String name = "周傑倫";
/*
* Func<String, String>委托接受一個字符串參數,返回一個字符串。sayHello是這種委托類型的變量。
* 可以看到,這裡不是把方法名賦予這個變量,而是使用一段簡單的代碼:
* 它前面是關鍵字delegate,後面是一個字符串參數,然後是方法的實現,最後以分號結束。
*/
Func<String, String> sayHello = delegate(String param)
{
String greeting = "你好," + param + "!我們喜歡你的歌!";
return greeting;
};
Console.WriteLine(sayHello(name));
}
}
}

運行結果如下:

從C#3.0開始,可以使用Lambda表達式替代匿名方法。

下面我們看看上面的例子,改寫成Lambda表達式版本的是什麼模樣:

namespace ConsoleApplication
{
class LambdaExpression
{
public static void Main()
{
String name = "周傑倫";
/*
* Func<String, String>委托接受一個字符串參數,返回一個字符串。sayHello是這種委托類型的變量。
* Lambda運算符“=>”的左邊列出了需要的參數。
* Lambda運算符的右邊定義了賦予Lambda變量的方法的實現代碼。
* 怎麼樣?是不是很簡單!
*/
Func<String, String> sayHello = param =>
{
String greeting = "你好," + param + "!我們喜歡你的歌!";
return greeting;
};
Console.WriteLine(sayHello(name));
}
}
}

Copyright © Linux教程網 All Rights Reserved