C#委托-使用匿名方法
使用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的定义。