C#委托-使用匿名方法
2012-06-28 07:25
225 查看
使用C#委托还有另一种重要方法--通过匿名方法。其中,匿名方法是用作委托参数的一个代码块。请看下面的例子:
匿名方法的作用是使代码更简化,方便了程序员。如果没有匿名方法,则定义一套事件监听需要这样:
class Program
{
public delegate void SomeDelegate(); // 定义委托
static void Main()
{
SomeType obj = new SomeType();
obj.SomeEvent += new SomeDelegate(MyEventHandler);
}
// 一般来说,定义的MyEventHandler方法只用来响应事件,只在上面那一处地方使用
public static void MyEventHandler() // 定义委托所调用的方法
{}
}
上面的代码比较啰嗦,尤其是为委托和它所调用的方法起名字比较费劲我觉得。有了匿名方法以后,仅需要这样:
class Program
{
static void Main()
{
SomeType obj = new SomeType();
obj.SomeEvent += delegate{
// 实现事件处理逻辑
}; // 注意要有分号
}
}
与上一段代码相比,省去了SomeDelegate和MyEventHandler的定义。
匿名方法的作用是使代码更简化,方便了程序员。如果没有匿名方法,则定义一套事件监听需要这样:
class Program
{
public delegate void SomeDelegate(); // 定义委托
static void Main()
{
SomeType obj = new SomeType();
obj.SomeEvent += new SomeDelegate(MyEventHandler);
}
// 一般来说,定义的MyEventHandler方法只用来响应事件,只在上面那一处地方使用
public static void MyEventHandler() // 定义委托所调用的方法
{}
}
上面的代码比较啰嗦,尤其是为委托和它所调用的方法起名字比较费劲我觉得。有了匿名方法以后,仅需要这样:
class Program
{
static void Main()
{
SomeType obj = new SomeType();
obj.SomeEvent += delegate{
// 实现事件处理逻辑
}; // 注意要有分号
}
}
与上一段代码相比,省去了SomeDelegate和MyEventHandler的定义。
相关文章推荐
- C#委托-使用匿名方法
- 使用匿名方法产生的一个难发现问题
- C#委托方法匿名的4种写法
- 匿名方法(暨 lambda 表达式)使用指南
- C# 2.0:使用匿名方法、迭代程序和局部类来创建优雅的代码
- C# 强化系列文章四:匿名方法的使用
- Java中匿名内部类的使用方法
- var 匿名类型 父类使用子类的方法 虚方法 this和 base
- C#委托,匿名方法和Lambda表达式(译)
- Func与Action, delegate, event, var, dynamic, 匿名方法,lambda, 大量的关键都使用相同功能,大大增加C#复杂性
- C# 匿名方法和拉姆达表达式 (2012-04-27 23:27:15)转载▼ 标签: 杂谈 匿名方法本质上是一传递给委托的代码块,是使用委托的另一种方法。 规则: 1、匿名方法中不能使用跳转语句跳
- 【JavaScript】js匿名方法使用
- Delphi匿名方法(二):使用本地变量
- C#强化系列文章四:匿名方法的使用
- C#委托,匿名方法和Lambda表达式(译)
- C# 2.0:使用匿名方法、迭代程序和局部类来创建优雅的代码
- (转) C#异步调用使用匿名方法Lambda表达式
- 在C#线程中的使用匿名方法
- C#—匿名方法和静态类使用
- CODE:使用匿名方法,让worker线程中更新UI控件的代码更优雅