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
相关产品推荐
相关产品推荐

