惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

博客园 - 三生石上(FineUI控件)
月光博客
月光博客
S
SegmentFault 最新的问题
有赞技术团队
有赞技术团队
Stack Overflow Blog
Stack Overflow Blog
Engineering at Meta
Engineering at Meta
T
The Blog of Author Tim Ferriss
The GitHub Blog
The GitHub Blog
小众软件
小众软件
Hugging Face - Blog
Hugging Face - Blog
IT之家
IT之家
宝玉的分享
宝玉的分享
A
About on SuperTechFans
Vercel News
Vercel News
P
Proofpoint News Feed
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
博客园 - 【当耐特】
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
V
Visual Studio Blog
Jina AI
Jina AI
Y
Y Combinator Blog
T
Tailwind CSS Blog
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
Last Week in AI
Last Week in AI

博客园 - z5337

【转】禁用 Chrome 浏览器的自动更新 【转】Avalonia 12 最小信创项目模板 【转】Avalonia 周边介绍 【转】国产操作系统对 Avalonia 的支持情况 【转】国产操作系统优化篇 [openKylin] 入门知识点 【转】国产操作系统优化篇 [openKylin] 第一步 - Qt + VMware 【转】p2055dn 打印机配置 IP 地址 【转】Windows 锁屏后屏幕不熄灭排查 【转】既然 java 8 因为组件容易被攻击,.net core 也有大量第三方组件,是不是也容易出问题 【转】最小 web api 学习 【转】使用记事本区分图片格式 【转】蓝牙耳机的播放控制 【转】JoyToKey 键位映射 【转】[C#] 要从接口取时间,单个订单查询和批量查询,写一个接口还是两个接口合适? 【转】[C#] Web API 中的常见层次 【转】[C#] .net core 项目的目标框架设置 【转】[C#] 项目里的配置文件与选项对比 【转】[C#] GlobalUsing 的使用 【转】[.net core] 项目的 Windows 服务器部署 【转】《三字经》全文 【转】[IDEA] 调试时怎么判断使用哪个配置文件 【转】PO、DO、VO、BO、DTO、DAO、POJO 的区别 【转】[web]怎么移除网页最上层的水印 【转】[C#] 30+个.NET开发最佳实践 【转】[C#] WPF 保留选中的高亮色 【转】Windows Server 系统的桌面上显示 此电脑 图标 【转】[C#] Enum 的 Flags 特性 【转】[C#] Tuples 元组介绍 【转】[C#] Record 的使用 【转】[C#] 预处理指令
【转】[C#] 参数前加 in 的作用
z5337 · 2025-07-28 · via 博客园 - z5337

转自:kimi.com

一句话:
in 就是**“按引用只读传参”**——把大型结构体按地址传进去,既省拷贝又保证你在方法里绝对不能改它。


拆开说:

  1. 只读引用

    csharp

    Copy

    void Foo(in BigStruct s) { /* 不能给 s 重新赋值,也不能改字段 */ }

    编译器帮你加 readonly 保护,任何修改直接报错。

  2. 省拷贝
    结构体很大时,不需要整份复制,只传一个 8 字节指针(x64),性能接近传 ref,但无副作用。

  3. 调用端语法
    调用时不需要写 inFoo(myStruct);Foo(in myStruct); 都行;写不写效果一样,写上是显式提示。

  4. ref readonly 的返回值配对

    csharp

    Copy

    ref readonly BigStruct Get() => ref _cache;
    Foo(Get());        // 全程零拷贝
  5. 不能用于
    • 类(class)——本来就是引用,再包一层没意义
    asynciterator 方法
    • 作为接口/委托签名(除非显式 in


速记口诀
in = “传进来,别碰它,省拷贝”。