zoukankan      html  css  js  c++  java
  • C# 匿名方法及Lambda表达式

    1.匿名方法

       定义:匿名方法不能直接在类中定义,而是在给委托变量赋值的时候,需要赋值一个方法,此时可以“现做现卖”,定义一个匿名方法传递给该委托。

       举实例说明:

       实例一:无参数,无返回值的一个匿名方法

         ////首先定义一个委托

         public delegate void Mydelegate();

        ////声明

         Mydelegate md=delegate(){

               Console.WriteLine("我是Andrew"); }

        ////调用委托

           md();

        实例二:有参数,无返回值的一个匿名方法

         ////首先定义一个委托

         public delegate void Mydelegate(string msg);

        ////声明

         Mydelegate md=delegate(string msg){

               Console.WriteLine("我是Andrew"+msg); }

        ////调用委托

           md("你是谁?");

     实例三:有参数,有返回值的一个匿名方法

         ////首先定义一个委托

         public delegate int Mydelegate(int num1,int num2);

        ////声明

         Mydelegate md=delegate(int n1,int n2){////注意:匿名方法时,无需添加返回的类型

               return n1+n2;}

        ////调用委托

           md(1,2);  ////结果为3

    2. Lambda表达式的语法格式:
         参数列表 => 语句或语句块
         其中“参数列”中可包含任意个参数(与委托对应),如果参数列中有0个或1个以上参数,则必须使用括号括住参数列,如下:
         () => Console.Write("0个参数")
         I => Console.Write("1个参数时参数列中可省略括号,值为:{0}",i)
         (x,y) => Console.Write("包含2个参数,值为:{0}*{1}",x,y)
     
    实例一:无参数,无返回值的一个匿名方法

         ////首先定义一个委托

         public delegate void Mydelegate();

        ////声明

         Mydelegate md=()=>{

               Console.WriteLine("我是Andrew"); }

        ////调用委托

           md();

        实例二:有参数,无返回值的一个匿名方法

         ////首先定义一个委托

         public delegate void Mydelegate(string msg);

        ////声明

         Mydelegate md=m=>{

               Console.WriteLine("我是Andrew"+m); }

        ////调用委托

           md("你是谁?");

     实例三:有参数,有返回值的一个匿名方法

         ////首先定义一个委托

         public delegate int Mydelegate(int num1,int num2);

        ////声明

         Mydelegate md=(x,y)=>{////注意:匿名方法时,无需添加返回的类型

               return x+y;}

        ////调用委托

           md(1,2);  ////结果为3

     
     
     
     
     
  • 相关阅读:
    centos8 防火墙配置增加端口
    linux上搭建maven私服(下)
    linux上搭建maven私服(中)
    项目成本管理中的PV、EV与AC的区别-实例解释
    配置IKE SA的生存周期(华为)
    IKE SA和IPSec SA的区别
    IPsecVPN协商过程-主模式
    Fortigate防火墙常用命令
    飞塔防火墙清除系统密码
    fatal: unable to access ‘https://github xxxxxxxxx的解决方法
  • 原文地址:https://www.cnblogs.com/Time_1990/p/4074667.html
Copyright © 2011-2022 走看看