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


    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/

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

  • 相关阅读:
    文件上传及文件大小限制_学习笔记
    Java后台及Jsp前端的简单分页_学习笔记
    Java过滤器Filter的原理及配置_学习笔记
    Jsp入门EL表达式_学习笔记
    关于forName()、newInstance()、getMethod()、getClass()等区别的简略说明
    SQL语句查询某字段不同数据的个数(DISTINCT 的使用)
    C# 中delegate和event的区别
    java面试题(转)
    Servlet中的几个重要的对象(转)
    Spring 注解注入的几种方式(转)
  • 原文地址:https://www.cnblogs.com/mhq-martin/p/9058059.html
Copyright © 2020-2023  润新知