通常我们需要给委托对象赋值一个方法,通过以前的一些思想,我们需要先定义这个方法,然后把这个方法名赋值给委托对象。现在我们可以使用匿名方法,直接将代码块赋值给委托对象。匿名方法就是没有名字的方法,是方法代码块,如下面示例:
class Program { delegate void Say(); public static void Main(string[] args) { Say sayHello=delegate(); {Console.WriteLine("你好!");}; sayHello(); } }
匿名方法从表面上看只是把方法体移到了委托对象的赋值表达式右边,并使用delegate代替了方法名。使用匿名方法,系统不必编译和创建单独的方法,因此减少了实例化委托所需的必要开销,使程序编译和运行效率都有所提升。