You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

VB.NET是否支持Lambda表达式短语法?公司要求用VB.NET替代C#

嘿,这个问题太有共鸣了!谁没被VB.NET早期那套冗长的Lambda语法折腾过呢?好消息是——VB.NET完全支持Lambda短语法,而且已经支持很多年了,我给你详细说说:

VB.NET的Lambda短语法详解

从.NET Framework 4.0(对应Visual Studio 2010及以上版本)开始,VB.NET就引入了简洁的Lambda表达式语法,彻底摆脱了必须写Function/Sub声明的繁琐。

长语法 vs 短语法对比

旧版长语法(繁琐写法)

比如定义一个计算两数之和的Lambda,长语法需要完整的函数包裹:

Dim addNumbers = Function(a As Integer, b As Integer)
                     Return a + b
                 End Function

新版短语法(清爽写法)

用短语法可以直接压缩成一行,省略Function、Return和End Function:

Dim addNumbers = Function(a, b) a + b

如果Lambda只有一个参数,连括号都能省略:

Dim calculateSquare = Function(x) x * x

关键注意点

  • 类型推断自动生效:短语法里参数的类型可以完全省略,编译器会根据上下文自动推断,和C#的Lambda逻辑一致。
  • 多行逻辑仍需长语法:如果你的Lambda需要执行多行代码(比如包含条件判断、循环),那还是得用完整的长语法结构,短语法只适用于单行表达式场景。
  • 无参数Lambda的写法:如果不需要参数,短语法要保留空括号:
Dim getCurrentTimestamp = Function() DateTime.Now.Ticks

要是你用的是.NET Core/.NET 5+这类较新的框架,VB.NET的Lambda语法支持还会更灵活,和C#的使用体验差距已经很小了。

内容的提问来源于stack exchange,提问作者Ctznkane525

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.19 04:11:45