C# 转 Java

代码级转换,目前唯一可用的方案是 Tangible C# to Java Converter。 把编译后的 IL 转为 bytecode 再反编译也是一个思路,没有找到相关实现。

转换难点并不是语法,语法用 CodeDOM 解析后重新生成 Java 就好了。

真正的难点是库,Tangible 提供了不少辅助函数,比如 Split 之类的。

当然,任何方案都不完美,像 .net 的 Globalization 等类架构很难整体套到 Java,难免要手工修订。

AI 也能做一些转换,不过也就限于一些小片段,代码长了就无法保持一致了。譬如 get set 转换后,相关代码用到 get set 的地方也要转换,AI 还做不到。Token 的限制也决定了规模大点就无法转换。

AI 是不是建立起了类似 CodeDOM 的东西呢?不得而知。

posted @ 2023-08-04 17:18  Inshua  阅读(590)  评论(0编辑  收藏  举报