首页 > 其他 > 详细

c# 匿名方法

时间:2014-04-15 06:50:34      阅读:407      评论:0      收藏:0      [点我收藏+]

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

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

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

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

2.匿名方法的语法:

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

bubuko.com,布布扣
        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");
        }
bubuko.com,布布扣

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

bubuko.com,布布扣
         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");
        });
bubuko.com,布布扣

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

3.需要注意的是:

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

 

c# 匿名方法,布布扣,bubuko.com

c# 匿名方法

原文:http://www.cnblogs.com/niuge/p/3664415.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!