lambda 表达式的由来
相关技术点:函数指针、C#委托、匿名方法、lambda表达式
谈到lambda表达式,首先从委托讲起,
委托是持有一个或者多个方法的对象,这个特性有点像C中的函数指针,可以指向不同的方法,下面的例子是一个简单的委托实例包含了声明委托类型,创建委托对象并赋值以及调用;在这个实例中我们声明了两个简单的方法PrintLow和PrintHigh,只是单纯的打印随机值,如果这两个方法只在此处使用,可以完全不用创建具名方法,匿名方法由此而生。
# ddd
1 delegate void MyDel(int x);//声明委托类型 2 class Program 3 4 { 5 void PrintLow(int value) 6 { 7 Console.WriteLine($"{value} - Low Value"); 8 } 9 void PrintHigh(int value) 10 { 11 Console.WriteLine($"{value} - High Value"); 12 } 13 static void Main() 14 { 15 MyDel del; 16 Random rand=new Random(); 17 int randomValue=rand.Next(99); 18 del=randomValue>50?new MyDel(PrintHigh):new MyDel(PrintLow);//依据randomValue赋值不同的委托对象 19 //使用匿名方法 20 del=randomValue>50?new MyDel(delegate(int x){Console.WriteLine($"{x} - High");}:delegate(int x){Console.WriteLine($"{x} - Low");}; 21 22 del(randomValue);//调用委托对象,执行委托对象对应的方法 23 } 24 }