zoukankan      html  css  js  c++  java
  • c# 匿名方法

    匿名方法是在2.0版本引入的,之前声明委托的唯一方法是 "命名方法”,3.0以后引入了Lambda表达式,委托多用Lambda表达式进行声明,与Lambda表达式相比,匿名方法可以忽略参数列表(当然也是某些情况下)

    1.为什么要使用匿名方法呢???

    在写代码的过程当中,我们可能会经常使用到委托,比如事件,集合的查找,跨线程访问控件利用控件的Invoke方法等等,在声明委托的时候,如果我们额外定义一个方法,而这个方法只被这个委托使用的话,总会感觉

    代码结构有点乱,匿名方法声明委托,就会使代码结构变得简洁,也会省去实例化的一些开销

    2.匿名方法的语法:

    匿名方法一般都是与委托结合使用的,委托定义以后,在声明委托的时候,可以使用匿名方法 delegate(参数) {匿名方法体;} 大括号部分就是匿名方法,一般匿名方法代码都比较少。举例子:

            List<string> list = new List<string>();
                list.Add("NameA");
                list.Add("NameB");
                list.Add("c");
                list.Add("NameD");
    
                list.FindAll(new Predicate<string>(match));
    
           public bool match(string ss)
            {
                return ss.StartsWith("Name");
            }

    这是不适用匿名方法的情况,每次使用委托都要命名一个方法,代码非常不简洁。

             List<string> list = new List<string>();
                list.Add("NameA");
                list.Add("NameB");
                list.Add("c");
                list.Add("NameD");
    
                List<string> b = list.FindAll(delegate(string aa){
                    return aa.StartsWith("Name");
            });

    这是使用匿名方法的情况,代码非常简洁。 只需要在需要调用的地方定义,delegate关键字+参数列表+{语句;}

    3.需要注意的是:

    我们说过匿名方法可以忽略参数列表,这是有条件的,即 方法体重没有使用到参数,如果使用到,必须添加参数列表

  • 相关阅读:
    xcode 快捷键大全、XCode常用快捷键图文介绍
    在ASP.NET Core 2.0 web项目中使用EntityFrameworkCore
    AspNetCore2身份验证
    @addTagHelper的使用
    Asp.net Mvc身份验证
    webAPi OData的使用
    Chrome及Chrome内核浏览器改变开发者工具字体大小
    银行卡号校验
    django静态文件
    django 简单路由配置
  • 原文地址:https://www.cnblogs.com/niuge/p/3664415.html
Copyright © 2011-2022 走看看