.NET 10 & C# 14 New Features 新增功能介绍-带修饰符的简单 lambda 参数

上篇文章给大家分享了:

.NET 10 & C# 14 New Features 新增功能介绍-field关键字

今天继续给大家分享:带修饰符的简单 lambda 参数

C# 14 对 lambda 语法一致性进行了增强。

 它允许在“简单 lambda 参数”(未加括号的单参数写法)中使用参数修饰符,例如 ref、out、in、scoped 等。

一、新旧写法对比

老的写法:

  x => x * 2

  如果想加修饰符:

  ref x => x + 1   // ❌ 不允许

  必须改成完整参数列表形式:

(ref int x) => x + 1

新的写法

ref x => x + 1

等价于

(ref int x) => x + 1

前提是类型可以推断。

二、支持的修饰符

可以用于简单 lambda 参数的修饰符包括:

  • ref

  • out

  • in

  • scoped

  • ref readonly

三、代码示例

Ref参数

delegate void RefAction(ref int x);

RefAction action = ref x => x++;

In参数

delegate void InAction(in int x);

InAction action = in x => Console.WriteLine(x);

范围参数

Span<int> span = stackalloc int[10];

ProcessSpan(scoped s => s[0] = 1);

四、典型适用场景

image

“带修饰符的简单 lambda 参数”本质是:

让 lambda 语法和方法参数语法更加统一。

对于常规业务代码影响不大,但对:

  • 高性能代码

  • 底层库开发

  • Span / ref 语义使用者

 这是一个非常实用的增强。

 

 

 周国庆

20260225

 

 

 

 

  

posted @ 2026-02-25 09:10  Eric zhou  阅读(420)  评论(0)    收藏  举报