Tag: .NET
All the articles with the tag ".NET".
-
C# 多态:base 引用和接口引用调用谁
Published: at 12:41 AM同一条调用语句,换成 base 引用或接口引用结果就变了。三个例子在 .NET 10 SDK 上实测,讲清 override、new 隐藏、显式接口实现的选成员与派发规则,以及编译器建议背后两种不同行为。
-
NuGet 包分发 agent skill 的取用与成本
Published: at 12:40 AMdotnet restore 会把包里的 SKILL.md 下载到全局缓存,agent 却读不到;用 dotnet-inspect 和 dotnet-package-skills 把它搬进仓库,再算清 token 成本。
-
C# 委托:Action、Func 与多播调用契约
Published: at 12:52 AM用一个返回 12 而不是 18 的多播例子,核对 Action、Func 的调用形状、方法组兼容规则、异常中断和最后一个返回值的来源,再决定回调 API 该写清哪条约定。
-
C# 事件与委托:订阅边界、失败边界与生命周期
Published: at 03:55 AM事件不是委托的别名。从类型与成员的区别出发,看清订阅权限、多播调用的失败点、async void 处理器和退订各自能保证什么,再决定通知 API 该把哪条边界写进文档。
-
C# 运算符:一条表达式要回答的四个问题
Published: at 02:40 AM7/2 赋给 double 为什么还是 3?乘号优先级更高,为什么方法调用仍按从左到右执行?从操作数类型、分组、求值顺序到相等契约,用四个问题拆开 C# 运算符,让日常表达式能被解释,不必靠猜。
-
C# 遍历 List:五种写法怎么选
Published: at 12:55 AM同一份 List 有 foreach、for、ForEach、Index()、AsSpan 五种遍历写法,速度最多差 5.6 倍。这篇按 .NET 10/11 的基准数据给出选法,并讲清循环里删元素、异步遍历和 Span 的边界。
-
C# 字符串里的孤立代理项,SIMD 怎么修
Published: at 12:50 AMC# 字符串是 UTF-16,孤立代理项一旦写进存储或网络就会出错。这篇按 Daniel Lemire 的新实现讲清代理项的判定、常规修复为什么在 emoji 输入上掉到 0.4 GB/s,以及 SIMD 版本如何回到 53 GB/s。
-
Task 不是线程,await 也不保证切线程
Published: at 12:45 AM原文把 Task 描述成后台线程,await 写成让另一个线程执行。这篇纠正这两个前提,讲清状态判断、AggregateException、未观测异常,并给出安全 fire-and-forget 的写法与边界。
-
PR 不跑云端 CI,改用本地 signoff
Published: at 12:40 AM一个 .NET 仓库 19 天里在 PR 上跑了 588 次 CI,作者把 pull_request 触发关掉,改用本地脚本、gh signoff 状态和规则集强制合并,四个月合并 833 个 PR;这篇拆开这套做法省了什么、赌的是什么。