一句话说明白Lambda表达式的基本知识

简介: Lambda表达式就是匿名方法! 1.匿名方法         要谈Lambda表达式,首先要理解匿名方法。使用委托我们要在别处写一个方法,然后再绑定到委托上使用。而使用匿名委托可以不用再在别处创建方法,直接将代码段作为传递给委托:         (1)不使用匿名方法: using System; namespace 委托demo控制台 { cla

Lambda表达式就是匿名方法!

1.匿名方法

        要谈Lambda表达式,首先要理解匿名方法。使用委托我们要在别处写一个方法,然后再绑定到委托上使用。而使用匿名委托可以不用再在别处创建方法,直接将代码段作为传递给委托:

        (1)不使用匿名方法:

using System;  
namespace 委托demo控制台  
{      
    class Program  
    {  
        public delegate void DoWork(string str);  
        static void Main(string[] args)  
        {  
            DoWork dowork = Work;  
            dowork("Hi,I'm Wangzhengkun!");  
        }  
        public static void Work(string str)  
        {  
            Console.WriteLine(str);  
            Console.ReadKey();  
        }  
    }  
}  
        (2)使用匿名方法:

using System;
namespace 委托demo控制台
{
    class Program
    {
        public delegate void DoWork(string str);
        static void Main(string[] args)
        {
            DoWork dowork = delegate (string str) 
            {
                Console.WriteLine(str);
                Console.ReadKey();
            };
            dowork("Hi,I'm Wangzhengkun!");
        }
    }
}  
实际执行的结果是一样的,使用匿名方法就不必再单独创建"Work"这个方法了,减少了代码量。

2.Lambda表达式

        从C#3.0开始Lambda表达式代替了匿名方法。首先看Lambda表达式使用的运算符“=>”,该运算符左边指定Lambda表达式的参数右边指定代码块。

使用Lambda表达式上面的例子就可以写成这样:

using System;
namespace 委托demo控制台
{
    class Program
    {
        public delegate void DoWork(string str);
        static void Main(string[] args)
        {
            DoWork dowork = str =>
            {
                Console.WriteLine(str);
                Console.ReadKey();
            };
            dowork("Hi,I'm Wangzhengkun!");
        }
    }
}

其中Lambda表达式就是这一部分:

str => { Console.WriteLine(str);  Console.ReadKey();  }  ;
 str是参数,右边大括号里的是代码段。

一个更简单的Lambda表达式:

str=>Console.WriteLine("Hi,I'm Wangzhengkun");

相比于匿名方法,Lambda表达式进一步缩减了代码量。

        以上都是单参数的Lambda表达式,还有多参数的:

public delegate void DoWork(string str1,string str2);
        static void Main(string[] args)
        {
            DoWork dowork = (str1,str2) =>
            {
                Console.WriteLine(str1+str2);
                Console.ReadKey();
            };
            dowork("Hi,", "I'm Wangzhengkun!");
        }
        总结一下: Lambda表达式就是匿名方法!

        关于Lambda表达式的基础就总结这么多,在我的另一篇博文“聊聊学习List<T>搜索与排序的心得”中讲到了Lambda表达式的一种实际用法。

更深入的用法放到LINQ里说吧。

目录
相关文章
|
iOS开发
iOS开发UI篇—直接使用UITableView Controller
iOS开发UI篇—直接使用UITableView Controller 一、一般过程 1 // 2 // YYViewController.h 3 // UITableView Controller 4 // 5 // Created by 孔医己 on 14-6-2.
940 0
|
云安全 安全 网络安全
|
6天前
|
JavaScript 安全 前端开发
Nodejs Brotli decoder 代码执行漏洞 (CVE-2026-111497)10629
Node.js发布安全更新修复Brotli解码器高危RCE漏洞(CVE-2026-111497),建议受影响版本用户立即升级。
1977 1
|
12天前
|
人工智能 API 开发工具
DeepSeek Harness 神插件:白嫖 13 家大厂模型
`dsh-our-free-model` 是 DeepSeek Harness 神级插件:零配置、零API Key、零账号,聚合13家大厂免费模型(含DeepSeek V4.1 Flash、Kimi K3等),支持本地网关、用量看板与自动降级,真正实现“白嫖即用”。
2082 41
|
9天前
|
Web App开发 人工智能 前端开发
2026 年 AI 浏览器怎么选?Ego Lite、Tabbit、Chrome DevTools MCP 深度对比,开发者到底该用哪个?
2026年AI浏览器选型指南:Ego Lite专注多Agent协同(Mac优先),Tabbit国产首选,原生支持Windows与Codex控制;Chrome DevTools MCP非浏览器而是开发者利器,深度集成Console/Network/Performance调试能力,让AI真正“看懂并验证”前端代码。
1370 3
|
13天前
|
JSON 程序员 数据格式
最新版Notepad++下载、安装、配置保姆级教程(附官网安装包)
Notepad++ 是一款免费开源、轻量快速的 Windows 文本编辑器,支持多标签、语法高亮、代码折叠与宏录制,体积小、启动快、资源占用低,兼容 x64/x32/ARM 架构,是程序员和文字工作者的高效利器。
2568 0
|
6天前
|
安全 应用服务中间件 Go
PHP2Shell 漏洞拆解:WordPress 与 nginx 为何中招
PHP2Shell 双 RCE 已遭在野利用:WordPress、Drupal 全在射程内,nginx 其实另有洞。拆成因与修复顺序
PHP2Shell 漏洞拆解:WordPress 与 nginx 为何中招
|
14天前
|
安全 Linux 芯片
【万字长文】Ollama下载、安装、配置、使用保姆级教程(2026最新图解)
Ollama 是一款免费开源的本地大模型运行工具,支持 DeepSeek、Qwen 等主流模型,一条命令即可下载运行。2026 最新版 v0.35.1 官方安装包(1.47GB)已提供国内直连下载,纯本地、离线可用、无广告、无隐私泄露风险。
1284 5
|
7天前
|
开发者 索引
DeepSeekHarness大肥鱼自带插件市场了?加个地址就能用
Open Plugin Market 是一个开放插件索引平台,收录800+优质DSH插件,支持分类浏览、智能推荐与随机发现。无需安装市场,粘贴索引地址即可一键接入,网页版直访 dshopen.org,助力小开发者被看见。(239字)
1431 1
DeepSeekHarness大肥鱼自带插件市场了?加个地址就能用

热门文章

最新文章