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

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

相关推荐
Sarvartha5 小时前
final 关键字
java·开发语言
程序员Sunday6 小时前
JavaScript 事件循环面试题,宏任务与微任务怎么执行|Sunday面试指南
开发语言·javascript·面试·校招·事件循环·程序员sunday
zhangzeyuaaa6 小时前
Ruby 多线程、GVL(GIL)与 Mutex 完全指南
开发语言·前端·ruby
谢亮_vipxieliang8 小时前
用 PHP 构建轻量级 REST API:从路由到鉴权的完整实践
开发语言·后端·php
思无邪668 小时前
用 AI 做 JS 逆向:从抓包到复现的完整方法论
开发语言·javascript·人工智能
H.莓飛8 小时前
【数据结构】二叉树_OJ题
linux·开发语言·数据结构·算法
零基础1239 小时前
Ubuntu 常用命令汇总
linux·运维·开发语言
外收内放9 小时前
Python基础语法练习题(57-58)
开发语言·python
时间的拾荒人9 小时前
Qt 界面美化实战:QSS 样式表
开发语言·qt·面试
杨运交10 小时前
[076][核心模块]构建优雅的Java异常处理框架:从错误码到全局异常处理
java·开发语言