摘要:
C# 多个构造函数 → JS 只有一个 constructor:签名分派机制详解 把构造函数签名的哈希值作为 JS 调用的第一个参数——这是一种编译期确定的精确分派,不依赖参数个数或运行时类型。 一、问题:C# 里你可以写 5 个构造函数,JS 里只能有 1 个 C# 的构造函数重载是编译期决定的: 阅读全文
posted @ 2026-05-11 15:16
形而下晓寒
阅读(12)
评论(0)
推荐(0)
摘要:
把一个 NuGet 包做成瑞士军刀:类库、分析器、MSBuild 集成和 MinVer 版本管理 一个 .nupkg 里可以同时装运行时 DLL、Roslyn Analyzer、Source Generator、MSBuild 构建逻辑和自动版本号——这篇文章是通用的搭建配方,附带每一层容易踩的坑。 阅读全文
posted @ 2026-05-11 15:07
形而下晓寒
阅读(56)
评论(0)
推荐(0)
摘要:
C# 元组 → JavaScript 对象:身份擦除与边界重映射 不保留 ValueTuple 运行时身份是一个刻意的设计决策,不是遗漏。 一、"元组看起来像对象,为什么不直接映射?" C# 的元组和 JavaScript 的对象在表观上极其相似: var t = (1, "hello", true 阅读全文
posted @ 2026-05-11 13:38
形而下晓寒
阅读(10)
评论(0)
推荐(0)
摘要:
C# 模式匹配 → JavaScript:一个 Lowering 的完整拆解 SemanticWalker.cs.Pattern.cs 把 C# 的花式匹配翻译成 JS 能懂的 typeof、&&、|| 和结构检查。 一、模式匹配为什么是 lowering 里最"重"的一块 Jazor 的编译器核心 阅读全文
posted @ 2026-05-11 13:36
形而下晓寒
阅读(9)
评论(0)
推荐(0)
摘要:
C# 的扩展方法进化史:从 this 到 extension 把别人的类型当成自己的,C# 在这条路上越走越远。 一、传统扩展方法:给类型"加个方法" C# 3.0 引入扩展方法的时候,解决的问题很朴素:不用修改源码、不用继承,就能给现有类型追加方法。 写法就是在一个静态类里定义一个静态方法,第一个 阅读全文
posted @ 2026-05-11 13:33
形而下晓寒
阅读(11)
评论(0)
推荐(0)
摘要:
Roslyn 的两棵树:语法树与操作树 一个记录"代码长什么样",一个记录"代码是什么意思"。 用 Roslyn 做代码分析或者编译器开发,你绕不开两棵树:语法树(Syntax Tree)和操作树(IOperation Tree)。初学者最容易踩的坑就是把它们混在一起用——该看语法的地方拿去查语义, 阅读全文
posted @ 2026-05-11 13:30
形而下晓寒
阅读(23)
评论(0)
推荐(0)
摘要:
把 C# 编译成 JavaScript:一个基于 Roslyn IOperation 的 Lowering 实践 从 IOperation 到 ESTree AST,以及这个过程中踩过的坑。 一、问题的起点 用 C# 写前端逻辑,然后直接变成 JavaScript,不依赖任何运行时——这个想法听起来 阅读全文
posted @ 2026-05-11 13:22
形而下晓寒
阅读(9)
评论(0)
推荐(0)

浙公网安备 33010602011771号