找回密码
 立即注册
首页 业界区 业界 .NET 10 & C# 14 New Features 新增功能介绍-带修饰符的 ...

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

欧阳雪枫 昨天 07:55
上篇文章给大家分享了:
.NET 10 & C# 14 New Features 新增功能介绍-field关键字

今天继续给大家分享:带修饰符的简单 lambda 参数
C# 14 对 lambda 语法一致性进行了增强。
 它允许在“简单 lambda 参数”(未加括号的单参数写法)中使用参数修饰符,例如 ref、out、in、scoped 等。
一、新旧写法对比
老的写法:
  x => x * 2
  如果想加修饰符:
  ref x => x + 1   // ❌ 不允许
  必须改成完整参数列表形式:
  1. (ref int x) => x + 1
复制代码
新的写法
  1. ref x => x + 1
复制代码
等价于
  1. (ref int x) => x + 1
复制代码
前提是类型可以推断。
二、支持的修饰符
可以用于简单 lambda 参数的修饰符包括:

  • ref
  • out
  • in
  • scoped
  • ref readonly
三、代码示例
Ref参数
  1. delegate void RefAction(ref int x);
  2. RefAction action = ref x => x++;
复制代码
In参数
  1. delegate void InAction(in int x);
  2. InAction action = in x => Console.WriteLine(x);
复制代码
范围参数
  1. Span<int> span = stackalloc int[10];
  2. ProcessSpan(scoped s => s[0] = 1);
复制代码
四、典型适用场景

“带修饰符的简单 lambda 参数”本质是:
让 lambda 语法和方法参数语法更加统一。
对于常规业务代码影响不大,但对:

  • 高性能代码
  • 底层库开发
  • Span / ref 语义使用者
 这是一个非常实用的增强。
 
 
 周国庆
20260225
 
 
 
 
  

来源:程序园用户自行投稿发布,如果侵权,请联系站长删除
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

相关推荐

您需要登录后才可以回帖 登录 | 立即注册