C# 匿名方法和拉姆达表达式的使用

匿名方法本质上是一传递给委托的代码块,是使用委托的另一种方法。

规则:

1、匿名方法中不能使用跳转语句跳至次匿名方法的外部,反之亦然;匿名方法外部的跳转语句也不能跳转到匿名方法的内部;

2、在匿名方法的内部不能访问不安全的代码。另外,也不能访问在匿名方法外部定义的ref和out参数。

3、可以使用在匿名方法外部定义的其他变量。

拉姆达表达式:就是匿名方法,只是语法不同。

(param)=>expr

param是输入参数列表,expr是一个表达式或者一系列语句。

规则:

1、在一个具有唯一的显示类型参数的Lambda表达式中,圆括号可以从参数列表中删除。

2、当输入参数不唯一时,括号不能省略。

3、输入参数列表中的各参数可以显式指定类型,也可以省略参数类型,具体类型通过类型判断机制判断。

4、expr可以只包含一个计算表达式,也可以包含一系列语句,只是语句需要包含在大括号中。

expr 为语句的时候:


 1: using System;
 2: 
 3: using System.Collections.Generic;
 4: 
 5: using System.Linq;
 6: 
 7: using System.Text;
 8: 
 9: namespace DelegateSample
 10: 
 11: {
 12: 
 13: publicdelegatevoid PrintDelegate(string content);
 14: 
 15: class Program
 16: 
 17: {
 18: 
 19: staticvoid Main(string[] args)
 20: 
 21: {
 22: 
 23: PrintDelegate pd = (string str) =>
 24: 
 25: {
 26: 
 27: System.Console.WriteLine("Printing...");
 28: 
 29: System.Console.WriteLine("Content:{0}", str);
 30: 
 31: };
 32: 
 33: pd("The quick brown fox jumps oyer a lazy dog.");
 34: 
 35: }
 36: 
 37: }
 38: 
 39: }









本文转自 OH51888 51CTO博客,原文链接:http://blog.51cto.com/rozbo/1260116,如需转载请自行联系原作者
上一篇:AWS - 创建并远程访问windows实例


下一篇:如何系统地学习数据挖掘