博客
关于我
委托、lambda表达式和事件(二)
阅读量:285 次
发布时间:2019-03-01

本文共 1158 字,大约阅读时间需要 3 分钟。

Lambda表达式

Lambda表达式是一种匿名函数,在C#中用于定义方法或代替传统的委托。它简化了代码结构,特别适用于处理简单的操作或对特定参数进行操作时。

Lambda表达式的基本用法

Lambda表达式的语法简洁,左侧是参数列表,右侧是方法操作的实现代码。例如:

Func
lambda = param => { param += ", middle part,"; param += " and this was added to the string."; return param;};

这个例子定义了一个接受字符串参数的lambda表达式,通过在参数上拼接字符串并返回结果。

Lambda表达式的参数定义方式

Lambda表达式的参数定义方式非常灵活,具体取决于委托的参数类型。以下是几种常见情况:

  • 单个参数

    Func
    oneParam = s => String.Format("change uppercase {0}", s.ToUpper());Console.WriteLine(oneParam("test"));
  • 多个参数

    Func
    twoParams = (x, y) => x * y;Console.WriteLine(twoParams(3, 2));
  • 明确参数类型

    Func
    twoParamsWithTypes = (double x, double y) => x * y;Console.WriteLine(twoParamsWithTypes(4, 2));
  • 明确参数类型有助于解决编译时的歧义问题,确保委托能够正确匹配。

    闭包与匿名类

    Lambda表达式可以访问其所在上下文中的变量,形成闭包。这种机制在匿名类中尤为常见。例如:

    public class AnonymousClass{    private int someVal;    public AnonymousClass(int someVal)    {        this.someVal = someVal;    }    public int AnonymousMethod(int x)     {        return x + someVal;    }}

    使用lambda表达式调用该方法时,会自动创建匿名类实例,并将参数传递给方法。

    注意事项

    • 闭包的危险性:闭包会访问外部变量,可能导致意外修改或引用,需谨慎使用。
    • 性能考量:闭包可能影响性能,特别是在频繁调用或高并发场景下。

    通过合理使用lambda表达式,可以简化代码并提升开发效率。

    转载地址:http://duco.baihongyu.com/

    你可能感兴趣的文章
    Mysql学习总结(40)——MySql之Select用法汇总
    查看>>
    Mysql学习总结(41)——MySql数据库基本语句再体会
    查看>>
    Mysql学习总结(42)——MySql常用脚本大全
    查看>>
    Mysql学习总结(43)——MySQL主从复制详细配置
    查看>>
    Mysql学习总结(44)——Linux下如何实现mysql数据库每天自动备份定时备份
    查看>>
    Mysql学习总结(45)——Mysql视图和事务
    查看>>
    Mysql学习总结(46)——8种常被忽视的SQL错误用法
    查看>>
    Mysql学习总结(48)——MySql的日志与备份还原
    查看>>
    Mysql学习总结(49)——从开发规范、选型、拆分到减压
    查看>>
    Mysql学习总结(4)——MySql基础知识、存储引擎与常用数据类型
    查看>>
    Mysql学习总结(50)——Oracle,mysql和SQL Server的区别
    查看>>
    Mysql学习总结(51)——Linux主机Mysql数据库自动备份
    查看>>
    Mysql学习总结(52)——最全面的MySQL 索引详解
    查看>>
    Mysql学习总结(53)——使用MySql开发的Java开发者规范
    查看>>
    Mysql学习总结(54)——MySQL 集群常用的几种高可用架构方案
    查看>>
    Mysql学习总结(55)——MySQL 语句大全再温习
    查看>>
    Mysql学习总结(56)——MySQL用户管理和权限设置
    查看>>
    Mysql学习总结(57)——MySQL查询当天、本周、本月、上周、本周、上月、距离当前现在6个月数据
    查看>>
    Mysql学习总结(58)——深入理解Mysql的四种隔离级别
    查看>>
    Mysql学习总结(59)——数据库分库分表策略总结
    查看>>