.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 语法和方法参数语法更加统一。

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

相关推荐
迪菲赫尔曼11 分钟前
【基础篇 11】把官方源码放到服务器:版本、解压层级和安装位置,一次弄清楚
运维·服务器·开发语言·人工智能·python·yolo·目标检测
chari克里1 小时前
QT5.15.2 + msvc2022部署全流程说明(windows可联网环境)
开发语言·c++·qt
Hello.Reader1 小时前
tsrs 技术解析用 Rust 移植 TypeScript 7,类型检查还能怎样提速?
开发语言·rust·typescript
透明的玻璃杯1 小时前
VS2015+QT 多线程
开发语言·qt
码匠许师傅2 小时前
【C++三方组件】mbedTLS:面向嵌入式的轻量 TLS
开发语言·c++
迪菲赫尔曼2 小时前
【基础篇 12】把环境与源码接起来:检查 GPU,再安装服务器上的项目
运维·服务器·开发语言·人工智能·python·yolo·目标检测
学以智用2 小时前
WinForms / WPF / Blazor 项目模板详解
.net
2601_962885722 小时前
2026 Python 股票数据接口选型指南(横评 + 决策树)
开发语言·python·区块链
Evand J3 小时前
【PMSM例程4】PMSM电阻辨识与模型补偿EKF,MATLAB例程。附下载链接,包运行成功
开发语言·matlab·电机·ekf·卡尔曼·pmsm
王仔小奶3 小时前
Rust 正在接管金融圈?深度拆解一份高薪 FinTech 岗位 JD
开发语言·金融·rust