码迷,mamicode.com
首页 > Windows程序 > 详细

【C#复习总结】细说匿名方法

时间:2018-05-18 22:20:14      阅读:231      评论:0      收藏:0      [点我收藏+]

标签:write   赋值   targe   开头   使用   完成   指正   表达式树   target   

1 前言

本系列会将【委托】 【匿名方法】【Lambda表达式】 【泛型委托】 【表达式树】 【事件】等基础知识总结一下。(本人小白一枚,有错误的地方希望大佬指正)

系类1:细说委托

系类2:细说匿名方法

系列3:细说Lambda表达式

系列4:细说泛型委托

系列5:细说表达式树

系列6:细说事件

 

接着上篇的委托来讲一下匿名方法,依然用大佬的文章来开头:

“在上一篇已经知道了,完成一个委托应用分三步走,缺一步都不行,如果要跨大步,当心步子大了扯着蛋。但是微软不怕扯着蛋,非要把三步做成两步来走啊!所以微软就用匿名方法来简化上边的三个步骤。匿名方法这个玩意儿怎么说呢,在C#中完全是可有可无的东西,只是为C#锦上添花,有人别出心裁给它取个名字叫语法糖。”

2 什么是匿名方法

匿名方法是C#2.0引入的一个新特性,它允许开发者内联(inline)声明自己的函数代码而无须使用委托函数(delegate function。匿名方法通常在1. 需要一个临时方法,该方法使用次数极少;2. 这个方法的代码很短,甚至可能比方法声明都短的情况下使用。

3 初识匿名方法

我们已经提到过,委托是用于引用与其具有相同标签的方法。换句话说,您可以使用委托对象调用可由委托引用的方法。

匿名方法(Anonymous methods) 提供了一种传递代码块作为委托参数的技术。匿名方法是没有名称只有主体的方法。

在匿名方法中您不需要指定返回类型,它是从方法主体内的 return 语句推断的。

4 匿名方法的使用

只需要两步就可以完成:

step01:首先用delegate定义一个委托 。

step02:用这样的写法 delegate(int x, int y) { return x + y; },把一个方法赋值给委托,其实这种写法就是匿名方法。

    class Program
    {
        //step01:首先用delegate定义一个委托 。
        public delegate int CaculateAdd(int x, int y);
        static void Main(string[] args)
        {
            //step02:用这样的写法 delegate (int x, int y) { return x + y; },把一个方法赋值给委托
            CaculateAdd add1 = delegate (int x, int y) { return x + y; };

          
              //int result = cAdd.Invoke(5, 6);
            int result = add1(4, 5);
            Console.WriteLine(result);
            Console.ReadKey();           
        }
    }

这时会惊奇的发现,这不是三步当着两步走了哇?

总结

匿名方法实现委托的方式只用了两步,省去了声明方法这一个步骤,对于编程人员方便了不少。到此,匿名方法就已经讲的差不多了,下一篇文章讲一下Lambda表达式。

技术分享图片

友情提示

作者: mhq_martin

博客园地址: http://www.cnblogs.com/mhq-martin/

本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

【C#复习总结】细说匿名方法

标签:write   赋值   targe   开头   使用   完成   指正   表达式树   target   

原文地址:https://www.cnblogs.com/mhq-martin/p/9058059.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!