匿名方法与Lambda表达式

匿名方法的概念:这个方法没有具体的名称,而只有委托关键字、方法参数、方法体,所以称为匿名方法,匿名方法允许将代码块通过委托变量作为参数传递,以代替单独定义的方法。

首先声明一个委托:

public delegate int CalculatorDelegate(int a, int b);

然后使用匿名方法:
            CalculatorDelegate objCal = delegate (int a, int b)
            {
                return a + b;
            };
            int result = objCal(10, 40);
            Console.WriteLine(result );

输出结果:50

c#3.0 引入了Lambda表达式,利用它们可以更简练地编写代码块。Lambda表达式:(参数列表)=>{方法体} goes to.

首先定义一个委托:

 public delegate int CalculatorDelegate(int a, int b);

第一种Lambda表达式方法:CalculatorDelegate objCal = (int a, int b) => { return a + b; };

更简化的方法:CalculatorDelegate objCal = (a,b) => { return a + b; };

int result = objCal(10,20);

Console.WriteLine(result );

输出结果为:30

实例二:

public delegate int MathOne(int a);

MathOne objMath=a=>a*a;

int result=objMath(10);

输出result结果为:100

说明:参数列表中的参数类型可以是“明确”类型或者是“推断”类型,如果是推断类型,则参数的数据类型将由编译器根据上下文自动推断出来。Lambda表示式本身就是匿名方法,Lambda表达式的参数允许不指名参数类型,而匿名方法的参数必须明确指明参数类型,Lambda表达式方法体允许由单一表达式或者多条语句组成,而匿名方法不允许单一表达式形式。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值