歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux編程 >> Linux編程

C#中的Lambda表達式

在看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