C#委托基礎8——lambda表達式
C#委托基礎係列原於2011年2月份發表在我的新浪博客中,現在將其般至本博客。
class Program { double AddInt(int x, int y) { return x + y; } string AddString(string s1, string s2) { return s1 + s2; } static void Main(string[] args) { Program p = new Program(); // 以為前兩個參數為int,他們運行的結果為double,最後一個參數與AddInt返回值一致 Func<int, int, double> funcInt = p.AddInt; Console.WriteLine("funcInt的值為{0}", funcInt(100, 300)); Func<string, string, string> funcString = p.AddString; Console.WriteLine("funcString的值為{0}", funcString("aaa", "bbb")); // 匿名方法 Func<float, float, float> fucFloat = delegate(float x, float y) { return x + y; }; Console.WriteLine("funcFloat的值為{0}", fucFloat(190.7F, 99999.9F)); // Lambda表達式 Func<string, string, string> funString2 = (x, y) => (x + y); Console.WriteLine("funString2的值為{0}", funString2("ttt", "bbb")); Console.ReadLine(); } }
本文參考自金旭亮老師的《.NET 4.0麵向對象編程漫談》有關代理的內容
最後更新:2017-04-03 20:19:49