.Net 2.0 新功能:匿名方法(Anonymous Methods)
2007-09-03 15:55
399 查看
匿名方法(Anonymous Methods)
1. 在2.0之前的c#版本中,声明委托的唯一方法是使用命名方法。
this.Load+= new System.EventHandler(this.Form1_Load);
protected void Form1_Load(object sender, EventArgs e)
...{
MessageBox.Show("委托");
}
2. 要将代码块传递为委托参数,创建匿名方法则是唯一的方法。
this.Load += new delegate(object sender, EventArgs e)...{ MessageBox.Show("委托");}
3. 使用匿名方法不需要再写一个方法,这个方法通常来说仅仅就是用来委托的,使用匿名方法将减少系统开销。
4. 如果局部变量和参数的范围包含匿名方法声明,则局部变量和参数称为该匿名方法的外部变量或捕获变量。例如,下面代码段中的n即时一个外部变量:
int n = 0;
Del d=delegate()...{System.Console.Write(n);}
与局部变量不同,外部变量的声明周期一直持续到引用该匿名方法的委托符合垃圾回收的条件为止。对n的引用是在创建该委托时捕获的。
5. 匿名方法不能访问外部范围的ref或out参数。
6. 在匿名方法块中不能访问任何不安全代码。
1. 在2.0之前的c#版本中,声明委托的唯一方法是使用命名方法。
this.Load+= new System.EventHandler(this.Form1_Load);
protected void Form1_Load(object sender, EventArgs e)
...{
MessageBox.Show("委托");
}
2. 要将代码块传递为委托参数,创建匿名方法则是唯一的方法。
this.Load += new delegate(object sender, EventArgs e)...{ MessageBox.Show("委托");}
3. 使用匿名方法不需要再写一个方法,这个方法通常来说仅仅就是用来委托的,使用匿名方法将减少系统开销。
4. 如果局部变量和参数的范围包含匿名方法声明,则局部变量和参数称为该匿名方法的外部变量或捕获变量。例如,下面代码段中的n即时一个外部变量:
int n = 0;
Del d=delegate()...{System.Console.Write(n);}
与局部变量不同,外部变量的声明周期一直持续到引用该匿名方法的委托符合垃圾回收的条件为止。对n的引用是在创建该委托时捕获的。
5. 匿名方法不能访问外部范围的ref或out参数。
6. 在匿名方法块中不能访问任何不安全代码。
相关文章推荐
- .Net 2.0 新功能:匿名方法(Anonymous Methods)
- c#2.0的新功能(三):分部类、匿名方法等
- .Net 2.0 新功能:匿名方法(Anonymous Methods)
- 重温net2.0新特性之可空类型、匿名方法
- 盘古分词在 Lucene.net 2.9 版本下搜索没有结果的原因分析及盘古分词2.0版本要开发的新功能
- 在VS.net 2005(ASP.NET 2.0) 中为GridView加行序的方法
- ASP.NET学习之匿名方法
- asp.net 2.0防止同一用户同时登陆(方法一)
- 揭秘ASP.NET 2.0的Eval方法
- 在ASP.Net 2.0中实现多语言界面的方法
- ASP.NET 2.0 中跨网页提交的三种方法(转载)
- 基础-ASP.NET 2.0 login保护控制方法
- [导入]基础-ASP.NET 2.0 login保护控制方法
- 揭秘ASP.NET 2.0的Eval方法(转)
- 对C# 2.0中匿名方法的怀疑分析
- 我在安装TFS 2008的时候遇到的问题以及解决方法一windows 2003 iis中总是不出现ASP.NET 2.0
- Asp.Net 2.0 ajax extensions 1.0 安装失败解决方法
- ASP.NET 2.0页面框架的几点新功能
- Asp.net 2.0 中如何调用用户控件(UserControl)的相关方法或属性/如何传参等
- .NET Framework System.Array.Sort 数组类,加深对 IComparer、IComparable 以及泛型委托、匿名方法、Lambda 表达式的理解