C#中Lambda表达式的三种写法

 更新时间:2022年05月05日 08:30:24   作者:農碼一生  
这篇文章介绍了C#中Lambda表达式的三种写法,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下

一、历史版本

delegate void StudentDelegate(string name, int age);
public class LambdaTest
{
    public void Show()
    {
        DateTime dateTime = DateTime.Now;
        //历史
        //版本1
        {
            StudentDelegate student = new StudentDelegate(PrintStudent);
            student("葛优", 1);
        }
    }
}

public void PrintStudent(string name,int age)
{
    Console.WriteLine($"我的名字是:{name},我的年龄是{age}");
}

二、版本二:访问局部变量

delegate void StudentDelegate(string name, int age);
public class LambdaTest
{
    public void Show()
    {
        DateTime dateTime = DateTime.Now;
        //版本2(这样写的话可以访问局部变量)
        {
            StudentDelegate student = new StudentDelegate( delegate (string name, int age)
            {
                Console.Write(dateTime);
                Console.WriteLine($"我的名字是:{name},我的年龄是{age}");
            });
            student("王朝伟", 1);
        }
    }
}

三、版本三: “=>”

delegate void StudentDelegate(string name, int age);
public class LambdaTest
{
    public void Show()
    {
        DateTime dateTime = DateTime.Now;
        //版本3(=>念成gose to)
        {
            StudentDelegate student = new StudentDelegate((string name, int age)=>
            {
                Console.Write(dateTime);
                Console.WriteLine($"我的名字是:{name},我的年龄是{age}");
            });
            student("刘德华", 1);
        }
        {
            Action action = () => Console.WriteLine("无返回值,无参数");
            Action<DateTime> action1 = d => { Console.WriteLine( $"带一个参数:{d}"); };
            action1(dateTime);

            Action<DateTime, int> action2 = (d, i) => { Console.WriteLine(  $"带两个参数:{ d} ,{ i}"); };
            action2(dateTime, 3);

            Func<DateTime> func=()=>{ return DateTime.Now; };//带返回值
            DateTime dateTime1 = func();//调用Lambda获取值 
            Console.WriteLine(dateTime1);

            Func<DateTime> func2 = () => DateTime.Now;//带返回值
            Console.WriteLine(func2());
        }
    }
}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • C# AutoMapper 使用方法总结

    C# AutoMapper 使用方法总结

    这篇文章主要介绍了C# AutoMapper 使用方法,文中讲解非常细致,代码帮助大家更好的理解学习,感兴趣的朋友可以了解下
    2020-06-06
  • C# BinaryReader实现读取二进制文件

    C# BinaryReader实现读取二进制文件

    在 C# 以二进制形式读取数据时使用的是 BinaryReader 类。本文介绍了C# BinaryReader实现读取二进制文件,感兴趣的可以了解一下
    2021-06-06
  • WPF+DiffPlex实现文本比对工具

    WPF+DiffPlex实现文本比对工具

    现行的文本编辑器大多都具备文本查询的能力,但是并不能直观的告诉用户两段文字的细微差异,所以对比工具在某种情况下,就起到了很便捷的效率。本文将利用DiffPlex实现简易的文本比对工具,需要的可以参考一下
    2022-11-11
  • C# 微信支付回调验签处理的实现

    C# 微信支付回调验签处理的实现

    在微信支付中,当用户支付成功后,微信会把相关支付结果和用户信息发送给商户,本文就详细的介绍了C# 微信支付回调验签处理,具有一定的参考价值,感兴趣的可以了解一下
    2021-12-12
  • C# System.BadImageFormatException问题及解决

    C# System.BadImageFormatException问题及解决

    这篇文章主要介绍了C# System.BadImageFormatException问题及解决方案,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-05-05
  • C#向PPT文档插入图片以及导出图片的实例

    C#向PPT文档插入图片以及导出图片的实例

    PowerPoint演示文稿是我们日常工作中常用的办公软件之一,本篇文章介绍了C#向PPT文档插入图片以及导出图片的实例,非常具有实用价值,需要的朋友可以参考下。
    2016-12-12
  • C# 7.2中结构体性能问题的解决方案

    C# 7.2中结构体性能问题的解决方案

    这篇文章主要给大家介绍了关于C# 7.2中结构体性能问题的解决方案,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2018-08-08
  • 在C#程序中注入恶意DLL的方法详解

    在C#程序中注入恶意DLL的方法详解

    为什么 Windbg 附加到 C# 程序后,程序就处于中断状态了?它到底是如何实现的?其实简而言之就是线程的远程注入,这一篇就展开说一下
    2022-09-09
  • C#实现将日期格式化为指定格式

    C#实现将日期格式化为指定格式

    这篇文章主要为大家详细介绍了C#如何使用DateTime.Now.ToString方法将日期格式化为指定格式,文中的示例代码讲解详细,有需要的小伙伴可以参考下
    2024-01-01
  • c# SendMail发送邮件实例代码

    c# SendMail发送邮件实例代码

    这篇文章介绍了c# SendMail发送邮件实例代码,有需要的朋友可以参考一下
    2013-09-09

最新评论