前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Lambda表达式

Lambda表达式

作者头像
宿春磊Charles
发布2022-03-29 10:18:03
2200
发布2022-03-29 10:18:03
举报
文章被收录于专栏:DotNet 致知

这节讲一个C#编程利器:Lambda表达式。

Lambda表达式(Lambda Expression)是C#中一种特殊语法,它的引入,使得匿名方法更加简单易用,最直接的是在方法体内调用代码或者为委托传入方法体的形式与过程变得更加优雅。

Lambda表达式实际上是一种匿名函数,在Lambda表达式中可以包含语句以及运算等操作。并且可用于创建委托或表达式目录树类型,支持带有可绑定到委托或表达式树的输入参数的内联表达式。使用Lambda表达式可大大减少代码量,使得代码更加的优美、简洁,更有可观性。

它的语法为:参数列表=>表达式体

请看一段代码:

代码语言:javascript
复制
class Program
{
    static void Main (string[] args)
    {
        new TestLambda ().GeneralMethod (Show);
    }

    public static void Show ()
    {
        Console.WriteLine ("我是一个方法");
    }

}

class TestLambda
{
    public void GeneralMethod(Action a)
    {
        a.Invoke ();
    }
}

一般我们填充委托,就是正常的传入一个方法,但使用Lambda表达式以后就可以进行将代码简化为如下样式:

代码语言:javascript
复制
class Program
{
    static void Main (string[] args)
    {
        new TestLambda ().GeneralMethod (() =>
            {
                Console.WriteLine ("我是一个Lambda表达式");
            });
    }
}

class TestLambda
{
    public void GeneralMethod(Action a)
    {
        a.Invoke ();
    }
}

将方法体直接嵌入到参数列表中。

因为上述代码只有一行,在这种情况下,可以进一步简化:

代码语言:javascript
复制
new TestLambda ().GeneralMethod (() =>Console.WriteLine ("我是一个Lambda表达式"));

单行Lambda表达式可以简化大括号和冒号结尾符。

一般的,凡是使用到委托传方法的地方,都可以将代码简化为Lambda表达式形式,这就是一种比较好玩的语法糖,初学者接受起来难免会生疏,所以要多写代码,孰能生巧。

本节到此结束...

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-10-18,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 DotNet 致知 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档