首页 > 代码库 > 匿名方法就是委托

匿名方法就是委托

当对2个数实现加减乘除,其中的一个解决方案是通过委托来实现。如下:

    class Program
    {
        private delegate int CaculateDel(int num1, int num2);
        static void Main(string[] args)
        {
            CaculateDel caculateDel = Add;
            Console.WriteLine(caculateDel.Invoke(1,2).ToString());
            Console.ReadKey();
        }
        static int Add(int num1, int num2)
        {
            return num1 + num2;
        }
    }

以上,把Add方法赋值给了CaculateDel类型的委托变量。

 

如果用匿名方法来实现,就是:

    class Program
    {
        private delegate int CaculateDel(int num1, int num2);
        static void Main(string[] args)
        {
            CaculateDel caculateDel = delegate(int num1, int num2)
            {
                return num1 + num2;
            };
            Console.WriteLine(caculateDel.Invoke(1,2).ToString());
            Console.ReadKey();
        }
    }   

 

可见,匿名方法就是委托,使用匿名方法有了更好的灵活性,不需要事先把方法写"死"。

如果我们使用System.Diagnostics的Stopwatch的实例方法Reset、Start、Stop等来重置、开始、结束Stopwatch,用Stopwatch的ElapsedTickes属性来显示时间,我们可以发现匿名方法的效率比较高。