1.匿名方法
myTime.Elspsed += delegate(object source, ElapsedEventArgs e) { Console.WriteLine((source as Timer).Interval); };
2.把Lamdba表达式用于匿名方法
myTime.Elspsed += (source,e) => Console.WriteLine((source as Timer).Interval);
Lamdba表达式由三部分组成:
- 放在括号中的参数列表
- =>运算符
- C#语句
using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace LambdaaOne { public delegate int TwoIntOperationDelegate(int paramA,int paramB); class Program { static void PerformOperation(TwoIntOperationDelegate del) { for (int paramAVal = 1; paramAVal<=5; paramAVal++) { for (int paramBVal = 1; paramBVal <= 5; paramBVal++) { int delegateResult = del(paramAVal, paramBVal); Console.Write("f({0},{1})={2}",paramAVal,paramBVal, delegateResult); if (paramBVal != 5) { Console.Write(","); } } Console.WriteLine(); } } static void Main(string[] args) { Console.WriteLine("f(a,b) = a+b: "); PerformOperation((paramA, paramB) => paramA + paramB); //or PerformOperation( delegate(int paramA, int paramB) { return paramA + paramB; }); //or PerformOperation( (paramA, paramB)=> { return paramA + paramB; }); Console.WriteLine(); Console.WriteLine("f(a,b) = a*b: "); PerformOperation((paramA, paramB) => paramA * paramB); Console.WriteLine(); Console.WriteLine("f(a,b) = (a-b)%b: "); PerformOperation((paramA, paramB) => (paramA - paramB) % paramB); Console.WriteLine(); Console.ReadLine(); } } }
总结:Lambda其实定义了一个匿名方法的快捷方式。