程序员开发实例大全宝库

网站首页 > 编程文章 正文

C#夯实基础-Lambda表达式(c# lambda 表达式)

zazugpt 2024-09-07 01:50:44 编程文章 23 ℃ 0 评论

c#中Lambda表达式定义

Lambda表达式本质上是一个匿名函数,用于实例化Action或者Func型委托函数

基本定义

Func<类型1,类型2,...返回类型> = (变量1,变量2,返回变量)=>{语句}

Action<类型1,类型2,...>=(变量1,变量2,....)=>{}

可以用来对委托的Action与Func进行实例化

示例1,定义一个函数实现两个数相加,使用这个函数。

        /// <summary>
        /// 两位相加
        /// </summary>
        /// <param name="a"></param>
        /// <param name="b"></param>
        /// <returns></returns>
        public static int Sum(int a, int b)
        {
            return a + b;
        }

使用这个函数

int x = 1;
int y = 2;
int c = Sum(x, y);
Console.WriteLine(c);

使用Lambda进行改造

        public void DoTest2()
        {
            //当前Func委托有两个参数是x,y,返回值类型是int
            Func<int, int, int> sum = (x, y) => { return x + y;};

            //调用
            int x = 1;
            int y = 2;
            Console.WriteLine(sum(x,y));
        }

实例使用

使用匿名函数的Lambda表达式,来实例化一个Func委托

当将委托作为函数参数的时候可以直接使用

实例:根据传入打印的内容,以及打印的次数,打印文件

        /// <summary>
        /// 根据传入打印的内容,以及打印的次数,打印文件
        /// </summary>
        /// <param name="printInfo"></param>
        /// <param name="printNum"></param>
        public static void Print(Func<string,int,string> print, string printInfo,int printNum)
        {
            string printContent = print(printInfo,printNum);

            Console.WriteLine(printContent);
        }

      //调用
        public static void DoTest3()
        {
            Print((content,num) =>
            {
                string printInfo = "";
                for (int i = 0; i < num; i++)
                {
                    printInfo += i+":" + content + "\r\n";
                }
                return printInfo;
            },"内容内容",5);
        }

注意在以上代码中,使用Lambda表达式来实现一个委托的方法,而无须重新定义一个新的函数。


Tags:

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表