匿名方法
——简化委托对象的使用
示例1:
C#中匿名类型(一次性使用的类型)
var stu =new {
Name=“张三”,Age=“18 ”,Gender=“男”
} //代码中没有明确的类型名
示例2:定义Event的代码
+= new EventHandler(Button1_Click)
private void Button1_Click(
object sender , EventArgs e){ //…}
用匿名方法可以将Event码编写为
+= delegate{ //…}
定义匿名方法的语法:
delegate (参数列表){ //表达式或语句块}
匿名方法提供了 Lambda 表达式中所没有的功能:
可以使用匿名方法来忽略参数列表。
匿名方法的几个要点:
1. 匿名方法只存在方法,但没有名字。
2. 匿名方法简化了委托的实例化工作。换句话说:匿名方法允许以一种“内联”的方式来编写方法代码,将代码直接与委托实例相关联,从而使得委托实例化的工作更加直观和方便。
3. 匿名方法直接与委托实例相关联。
:
delegate void MyDelegate(int i);
static void Main(string[] args){
MyDelegate MyDele = delegate(int i){
("hello KiddLee");
};}
注:匿名方法可以在delegate关键字后跟一个参数列表(可以不指定),后面的代码块则可以访问这些参数;如果不指定参数列表,则代码如下
delegate void MyDelegate(int i);
static void Main(string[] args){
MyDelegate MyDele = delegate{
("hello KiddLee"); };
}
二、在匿名方法中,有几点问题要注意:
1)如果委托类型的返回值类型为void,那么匿名方法里就不能返回任何值:
delegate void MyDelegate();
static void Main(string[] args){
MyDelegate mydele = delegate{ return;};
}
2)若委托类型的返回值类型不为void,则匿名方法返回值也不能为void:
delegate int MyDelegate();
static void Main(string[] args){
MyDel
匿名方法 来自淘豆网m.daumloan.com转载请标明出处.