zoukankan      html  css  js  c++  java
  • 委托 匿名函数 Lambda表达式

                    委托是一种引用方法的类型。一旦为委托分配了方法,委托将与该方法具有完全相同的行为,通俗的讲委托就是把方法当做参数来调用。

                                 

     class FristPage
        {  
            //定义委托
            //委托必须定义在方法体外边
            //delegate  返回类型    委托名称(参数类型  参数);
            delegate void StringDeleGate(string value);
            //委托调用的方法
            //必须是静态的(static)
            public static void GetFrist(string value)
            {
                Console.Write("我是老大" + value);
            }
            public static void GetSecond(string value)
            {
                Console.Write("我是二当家的" + value);
            }
            static void main(string[] args) 
            {
                //实例化委托;把委托方法注册到委托中
                StringDeleGate newdelegate = new StringDeleGate(GetFrist);
                //一个委托可以注册多个方法;执行时,按注册的先后执行
                newdelegate += new StringDeleGate(GetSecond);
                //调用传参
                newdelegate("大爷");
                //删除注册GetFrist方法
                newdelegate -= new StringDeleGate(GetFrist);
                newdelegate("二爷");
                Console.ReadLine();
                //执行时,将先执行GetFrist方法,再执行GetSecond方法
                //委托:先把方法注册到委托上,调用时才执行方法
            }
        }

                     

                     

                  匿名函数是一个“内联”语句或表达式,可在需要委托类型的任何地方使用。可以使用匿名函数来初始化命名委托,或传递命名委托(而不是命名委托类型)作为方法参数。共有两种匿名函数

    • Lambda 表达式

    • 匿名方法

              

    class FristPage
        {
            //匿名函数:是对委托的一种简化
            //定义委托
            delegate void StringDeleGate(string value);
            static void main(string[] args)
            {
                //实例化委托并注册匿名函数
                //语法 delegate(参数类型,参数){ xxxx 方法体}
                //方法体直接写在委托里
                StringDeleGate newDele = delegate(string value) { Console.Write(value + "注册deletegate"); };
                //注册多个匿名函数
                newDele += delegate(string value) { Console.Write(value + value + value + "注册deletegate"); };
                //调用委托
                newDele("大爷");
            }
        }

                     “Lambda 表达式”是一个匿名函数,它可以包含表达式和语句,并且可用于创建委托或表达式目录树类型。 所有 Lambda 表达式都使用 Lambda 运算符 =>,该运算符读为“goes to”。该 Lambda 运算符的左边是输入参数(如果有),右边包含表达式或语句块。Lambda 表达式 x => x * x 读作“x goes to x times x”。

                     

     class FristPage
        {
            //Lambda表达式:是对委托的一种简化,是匿名函数的一种
            //定义委托
            delegate void StringDeleGate(string value);
            static void main(string[] args)
            {
                //实例化委托并注册表达式
                //语法:x=>(AAAA)   AAAA:为方法体; X为参数
                //方法体直接写在委托里
                StringDeleGate newDele = (x =>Console.Write( x + "匿名函数"));
                //注册多个Lambda表达式
                newDele += (x => Console.Write(x + "匿名函数"+x));
                //调用委托
                newDele("大爷");
                //Lambda表达式将依次调用进行
            }
        }
  • 相关阅读:
    【Java每日一题】20161227
    【Java每日一题】20161226
    【Java每日一题】20161223
    【Java每日一题】20161222
    【Java每日一题】20161221
    【Java每日一题】20161220
    【Java每日一题】20161219
    【Java每日一题】20161216
    【Java每日一题】20161215
    【Java每日一题】20161214
  • 原文地址:https://www.cnblogs.com/jiangqiang/p/2536880.html
Copyright © 2011-2022 走看看