博客
关于我
委托、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学习总结(80)——统计数据库的总记录数和库中各个表的数据量
    查看>>
    Mysql学习总结(81)——为什么MySQL不推荐使用uuid或者雪花id作为主键?
    查看>>
    Mysql学习总结(82)——MySQL逻辑删除与数据库唯一性约束如何解决?
    查看>>
    Mysql学习总结(83)——常用的几种分布式锁:ZK分布式锁、Redis分布式锁、数据库分布式锁、基于JDK的分布式锁方案对比总结
    查看>>
    Mysql学习总结(84)—— Mysql的主从复制延迟问题总结
    查看>>
    Mysql学习总结(85)——开发人员最应该明白的数据库设计原则
    查看>>
    Mysql学习总结(8)——MySql基本查询、连接查询、子查询、正则表达查询讲解
    查看>>
    Mysql学习总结(9)——MySql视图原理讲解与使用大全
    查看>>
    Mysql学习笔记 - 在Centos7环境下离线安装Mysql
    查看>>
    MySQL学习笔记十七:复制特性
    查看>>
    Mysql学习第一课-mysql的定义及sql语句
    查看>>
    mysql学号的字符长度_MYSQL--2
    查看>>
    mysql安全模式: sql_safe_updates
    查看>>
    mysql安装,卸载,连接
    查看>>
    MySQL安装之没有配置向导
    查看>>
    mysql安装出现 conflicts with mysql*的解决办法
    查看>>
    mysql安装卡在最后一步解决方案(附带万能安装方案)
    查看>>
    mysql安装和启动命令小结
    查看>>
    Mysql安装教程(命令行)
    查看>>
    mysql安装版安装
    查看>>