|
一:匿名方法
匿名方式是C#2.0引入的一个特性,它允许开发者声明自己的函数代码而无须使用委托函数。
C#为委托提供一种机制,可以为委托定义匿名方法,匿名方法没有名称,编译器会指定一个名称,在匿名方法内部不能访问不完全的代码,匿名方法中不能使用跳转语句跳转到该匿名方法的外部,也不能跳转到该方法的内部,也不能在匿名方法外部使用的ref和out参数。但可以使用在匿名方法外部定义的其他变量。
如果需要用匿名方法多次编写同一个功能,就不要使用匿名方法,而编写一个指定的方法比较好,因为该方法只能编写一次,以后可通过名称引用它。
通过使用匿名方法,可以不必创建单独的方法,因此减少了实例化委托所需要的编码系统开销。
用匿名方法定义委托的语法和前面的定义并没有区别,但是实例化委托时就有区别了。
那么什么时候该使用匿名方法?
1.需要一个临时方法,该方法使用次数极少。
2.该方法代码很短,甚至可能比方法声明都短的情况下使用
二:Lambda表达式
Lambda表达式是C#3.0引入的,为匿名方法提供了的一个新语法,和普通方法一样,lambda表达式可以没有参数,也可以有多个参数。
运算符=>的左边列出了匿名方法需要的参数。有几种编写方式:
1. 在括号中定义类型和变量名:
(string param) =>
2. 省去变量类型:
(param) =>
3. 如果只有一个参数,就可以删除括号:
MyDelegate myDelegate1 = param =>
|
|