匿名方法

匿名方法

匿名方法(anonymous method)允许一个与委托关联的代码被内联地写入使用委托的地方,这使得代码对于委托的实例很直接。除了这种便利之外,匿名方法还共享了对本地语句包含的函数成员的访问。本节将对匿名方法及其使用进行详细讲解。
5.11.1  什么是匿名方法
2.0之前的C#版本中,声明委托的惟一方法是使用命名方法。C#2.0引入了匿名方法,如果使用匿名方法,则不必创建单独的方法,因此减少了实例化委托所需的编码系统开销。简言之以前是委托调用一个方法,现在是直接将方法的代码块作为参数传给委托而不必调用方法。
//定义一个委托
delegate void Del(int y);
//委托调用匿名方法
Del d = delegate(int h) { /* 直接写委托所调用的方法的代码*/ };
5.11.2  匿名方法的使用
  ch0510 实例位置:mr\05\sl\Ex05_10
下面通过实例来介绍如何在程序中使用匿名方法。
程序开发步骤如下。
(1)启动Visual Studio 2005,新建一个控制台应用程序,命名为Ex05_10。
(2)在自动生成的Program.cs文件中编写如下代码:
//定义一个委托,用来调用匿名方法
    delegate void Writer(string s);
    class Program
    {
        //委托所调用的命名方法:
        static void NamedMethod(string k)
        {
            System.Console.WriteLine(k);
        }
        static void Main(string[] args)
        {
            // 委托类调用匿名方法:
            Writer w = delegate(string j)
            {
                System.Console.WriteLine(j);
            };
            // 调用匿名方法并显示匿名方法被调用:
            w("匿名方法被调用。");
            Console.WriteLine();
            // 委托关联命名方法 " NamedMethod ":,注意在这里多了实例化委托
            w = new Writer(NamedMethod);
            // 显示命名方法被调用
            w("命名方法被调用。");
        }
    }
实例运行结果如图5.9所示。
图5.9  匿名方法的使用

你可能感兴趣的:(方法)