[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();
}
}
}
輸出結果
Link
- Lambda 運算式 (C# 程式設計手冊)
- http://blog.darkthread.net/blogs/darkthreadtw/archive/2008/06/13/lambda-expression.aspx
- http://www.dotblogs.com.tw/chhuang/archive/2008/05/25/4115.aspx
三小俠 小弟獻醜,歡迎指教