匿名方法
要将代码块传递为委托参数,创建匿名方法则是唯一的方法。匿名方法就是为了将代码块传递为委托参数,因此也有人将其称为匿名委托。使用C#的匿名方法可以使委托及事件的代码编写更加精简、高效。一般情况下,事件注册事件处理方法,需要首先定义这个方法,如果该方法仅用于订阅特定的事件,则可使用代码更加简明的匿名方法。
示例
委托与事件中的烧水示例,Heater类不变,去掉Alarm类和Display类,使用匿名方法订阅事件修改Main方法中的代码。
Heater heater = new Heater();
heater.BoilEvent += delegate (int param) //水快开时报警的匿名方法
{
Console.WriteLine("Alarm: 嘀嘀嘀,水已经{0}度了!", param);
};
heater.BoilEvent += delegate (int param) // 表示水温的匿名方法
{
Console.WriteLine("Display: 水快烧开了,当前温度:{0}度!", param);
};
heater