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 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 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 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 dude= (x,str) =>//定义
                {
                    System.Console.WriteLine("Number is{0},String is {1}", x, str);
            };
            dude(10, "Distinguish"); //传入参数,调用
            System.Console.ReadLine();
           
        }

运行的结果

 

 

你可能感兴趣的:(C/C#)