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

一、新旧写法对比

老的写法:

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);

四、典型适用场景

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

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

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

相关推荐
Dxy12393102165 分钟前
Python使用XPath定位元素:动态计算与函数调用
开发语言·python
Evand J18 分钟前
【MATLAB代码介绍】三种CT模型的IMM(交互式多模型)对目标高精度定位
开发语言·matlab·ct·imm·交互式多模型·多模型·转弯
AC赳赳老秦21 分钟前
OpenClaw权限管理实操:团队共享Agent,设置操作权限,保障数据安全
服务器·开发语言·前端·javascript·excel·deepseek·openclaw
geovindu33 分钟前
go: Proxy Pattern
开发语言·后端·设计模式·golang·代理模式
langsiming38 分钟前
【无标题】
java·开发语言·数据库
꧁细听勿语情꧂40 分钟前
合并两个有序表、判断链表的回文结构、相交链表、环的链表一和二
c语言·开发语言·数据结构·算法
Rust语言中文社区41 分钟前
【Rust日报】2026-04-24 Vizia 0.4 发布——纯 Rust 声明式响应式 GUI 框架
开发语言·后端·rust
普通网友1 小时前
JavaScript:ESLint+Prettier 规范代码格式
开发语言·javascript·ecmascript
t***5441 小时前
如何在 Dev-C++ 中切换编译器
java·开发语言·c++
成都易yisdong1 小时前
纬地、鸿业、海地、CASS等横断面数据互转工具V3.2——测绘与道路设计人员的效率神器
c#·visual studio code