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

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

相关推荐
jinanwuhuaguo2 小时前
OpenClaw办公人员核心技能深度培训体系:从认知重塑到数字组织构建的全链路实战指南
java·大数据·开发语言·人工智能·openclaw
郝学胜-神的一滴2 小时前
[简化版 GAMES 101] 计算机图形学 03:线性代数下
开发语言·c++·线性代数·图形渲染
Dxy12393102162 小时前
如何使用 ECharts 绘制 K 线图
开发语言·javascript
fe7tQnVan2 小时前
从玩具到生产:基于 ChromaDB 打造工程级 RAG 系统
开发语言·c#
Frank_refuel2 小时前
QT->信号与槽详解下补充(概述、使用、自定义、连接方式、其他说明)
开发语言·qt
happymaker06262 小时前
VueCli标准化工程中的组件通信操作
开发语言·前端·javascript
qZ6bgMe432 小时前
一个高性能的 .NET MQTT 客户端与服务器库
运维·服务器·.net
ySq0REx012 小时前
.NET 10 & C# 14 New Features 新增功能介绍-.NET CLI工具改进
开发语言·c#·.net
kvo7f2JTy2 小时前
.NET 11 预览版1:CoreCLR 在 WebAssembly 上的全面集成与性能突破
服务器·.net·wasm