[C#] Lambda 運算式

  • 19830
  • 0

[C#] Lambda 運算式

Introduction

詳細完整的說明請參考

 

這邊節錄片段:

「Lambda 運算式」(Lambda Expression) 是一種匿名函式,它可以包含運算式和陳述式 (Statement),而且可以用來建立委派 (Delegate) 或運算式樹狀架構型別。

所有的 Lambda 運算式都會使用 Lambda 運算子 =>,意思為「移至」。Lambda 運算子的左邊會指定輸入參數 (如果存在),右邊則包含運算式或陳述式區塊。Lambda 運算式 x => x * x 的意思是「x 移至 x 乘以 x」。這個運算式可以指派成委派型別 (Delegate Type),如下所示:

delegate int del(int i);
del myDelegate = x => x * x;
int j = myDelegate(5); //j = 25
 
這邊做個練習,溫故知新一下。
 
Example
namespace TestLambda {
    class Program {

        //宣告委派
        delegate string MyDelegate(string title, string name);
        delegate T MyDelegate2<T>(T a, T b);

        static void Main(string[] args) {
            
            MyDelegate Del = (title, name) => string.Format("{0} {1}", title, name);
            Console.WriteLine(Del("世界杯", "小小羅"));
            Console.WriteLine("=====================================================");

            MyDelegate Del2 = (title, name) => {
                string s = string.Format("{0} {1}", title, name);
                return s;
            };
            Console.WriteLine(Del2("c#", "Jave"));
            Console.WriteLine("=====================================================");

            MyDelegate2<string> Del3 = (A, B) => string.Format("{0} {1}", A, B);
            Console.WriteLine(Del3("A", "B"));
            Console.WriteLine("=====================================================");

            MyDelegate2<int> Del4 = (C, D) => {
                
                int iResult = C + D;
                return iResult;
            };
            Console.WriteLine(Del4(3, 4).ToString());

            Console.ReadKey();
        }
    }
}

 

輸出結果

2010-01-19_233746

 

Link

三小俠  小弟獻醜,歡迎指教