C#中的Lambda表达式与Lambda语句

目录

Lambda表达式

Lambda表达式简介

Lambda表达式如何使用

表达式的简单使用

表达式与零到多个参数

Lambda语句

Lambda语句简介

Lambda语句的使用


Lambda表达式

 

Lambda表达式简介

Lambda表达式是作为对象处理的代码块,可作为参数传递给方法,也可通过方法调用返回,是与匿名方法类似的内联表达式,但更加灵活。

使用Lambda表达式,比较典型的就是会用到符号“ =>”,这一个符号读作"goes to",在Lambda表达式中,它的左侧是输入变量符号,右侧是Lambda表达体,对传入的参数进行运算。

 

Lambda表达式如何使用

要使用Lambda表达式是比较简单的,直接进行定义,一般情况下使用Lambda表达式的结构如下

函数(参数) = Lambda表达式

 

表达式的简单使用

实现一个x等于2*x的计算,这里是匿名的:

static void Main(string[] args)
        {
            Func<int, int> study = x => x + x; //  =>的左边等于右边
            Console.WriteLine("Out: {0}",study(5));
            Console.ReadLine();
        }

这里使用了一个Func,这是一个封装的方法,是.NET类库中增加的内置委托,以便更加简洁方便的使用委托。用于将Lambda表达式封装为函数以调用

 

上面的函数相当于就是输入x,计算x+x得到的结果

 

表达式与零到多个参数

Lambda是可以支持任意数量的参数,但是括号在绝大多数情况下是必须的,在上一个例子里面,因为只有一个输入参数,因此不需要在=>左侧添加括号,而在其他时候,0个参数或者N个参数的时候都需要。

可以

(x,y)=>x-y

也可以

() => Console.WriteLine("System Pause");

如果要判断也可以使用Lambda表达式,比如

Func<int, int, bool> study2 = (x, y) => x == y;

上式写作普通函数就相当于

 

static bool study2(int x,int y)
        {
           if( x == y)
            {
                return true;
            }
            return false;
        }

最终运行返回结果是true或false,整个函数如下

static void Main(string[] args)
        {
           
            Func<int, int, bool> study2 = (x, y) => x == y;//判断x和y相等
            Console.WriteLine("Out: {0}", study2(1,5));
            Console.ReadLine();

        }

运行结果

 

Lambda语句

 

Lambda语句简介

相比较Lambda表达式来说,Lambda语句是写在{}中的,具有更多行并且更为的灵活,类似于匿名方法

 

Lambda语句的使用

这里使用Action<>来建立,相比较前文使用的Func<>来说,Action<>不具有返回值

 static void Main(string[] args)
        {
           Action<int,String> dude= (x,str) =>//定义
                {
                    System.Console.WriteLine("Number is{0},String is {1}", x, str);
            };
            dude(10, "Distinguish"); //传入参数,调用
            System.Console.ReadLine();
           
        }

运行的结果

 

 

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
C#lambda表达式是一种简洁而强大的语法形式,用于定义匿名函数。它的语法结构类似于= > 运算符,左侧是参数列表,右侧是表达式或语句块。 Lambda表达式可以用于多种情况,比如作为参数传递给函数,定义委托类型,或在LINQ查询使用。它可以代替繁琐的匿名方法或命名的方法,使代码更加简洁和易读。 在C#lambda表达式可以分为两种类型:表达式Lambda语句Lambda。表达式Lambda是指只有一个表达式的lambda,它只能包含一个表达式并返回其结果。 例如,下面的代码演示了如何使用表达式Lambda来定义一个匿名函数并进行计算: ``` Func<int, int> func = x => x * 4; int result1 = func(5); //[1] ``` 这段代码定义了一个接受一个int类型参数并返回int类型结果的函数。通过表达式Lambda,我们将输入的参数乘以4并返回结果。然后,我们可以通过调用func方法并传入参数5来获得计算结果result1。 此外,表达式Lambda的主体还可以包含方法的调用。例如,我们可以在表达式Lambda调用其他方法,如下所示: ``` func = x => x * Add(3, 2); int result2 = func(5); //[1] ``` 在这个例子,我们在表达式Lambda调用了Add方法,并将其结果与输入参数相乘。同样,我们可以通过调用func方法并传入参数5来获得计算结果result2。 总的来说,C#lambda表达式是一种方便而灵活的方式来定义匿名函数,并能简化代码和提高可读性。通过使用lambda表达式,我们可以更加简洁地表示函数逻辑和处理复杂的数据操作。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [C# Lambda表达式](https://blog.csdn.net/qq_39847278/article/details/127525222)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值