将 JScript.NET 转换为 C#。






2.09/5 (8投票s)
2003 年 4 月 30 日
3分钟阅读

58868

885
想要轻松地跳转到 C#?这是答案。
引言
如果您最初使用 JScript 创建 ASP 页面,并转向 ASP.NET,您可能像我一样选择了 JScript.NET。 我使用这种语言做了很多工作,并且可以用它来做我需要做的任何事情。
我喜欢 JScript.NET,但我发现如果我要与他人共享组件,我需要放弃引用 JScript 引擎,然后升级到大男孩 C#。
解决方案
这两种语言并没有太大的不同。 它们具有非常相似的语法,并使用许多相同的保留字和对象。
您可以花几个小时在您的代码中进行查找和替换,直到您获得等效的 cs 文件,但我很早就厌倦了这样做。
所以我制作了这个工具来转换你的代码。 我已经包括了所有内容,所以请随意研究或改进它。 我已经把它提高到一个我觉得舒服的水平。 再多一点,我最好写编译器。
如何使用该工具
这真的很简单。 您需要安装 .NET Framework。 只需在发布文件夹中运行应用程序。 单击“选择”按钮以选择要转换的.js文件,然后单击“转换”。 您需要确保.js文件已经可以使用jsc.exe编译,否则您无法确定该工具将如何响应。 如果应用程序可能会挂起,请记下它挂起在哪一行,将该行分解得更多,然后重试。 如果某一行似乎花费了很长时间,请在结束任务之前给它最多 20 秒的时间。
生成的代码将保存为与原始 js 文件相邻的 cs 文件,并且是尽最大努力将您的代码转换为 C# 的尝试,并进行某些假设,这些假设可能需要在事后恢复。 您很可能仍然需要调试,但这不应该花费您太长时间,并且绝对不会像您手动操作那样长。
工作原理
我使用正则表达式模式匹配来运行 Regex.Replace
,使用 MatchEvaluator
s。 如果尝试搜索整个文档,许多更复杂的正则表达式可能会花费很长时间。 因此,一些替换是在整个文档上完成的,而更多替换是逐行完成的。 对于那些不熟悉正则表达式或它们在 .NET Framework 中的工作方式的人,请查看我的另一篇文章:了解 .NET 中的正则表达式。 我用来评估正则表达式的工具对于能够实现这一点至关重要。 运行示例模式匹配来测试和完善分组非常重要,并且可能是一个乏味的过程,但非常值得结果。
结论
JScript.NET 确实是一种很棒的语言,并且非常灵活,但是您需要非常注意延迟绑定,这最终会导致错误并降低性能。 C# 作为本机 .NET 语言,似乎没有这个问题,并且迫使您尽早绑定,并使您编译的类非常紧凑和高效。
现在是时候升级了。 请享用。
对于那些试图从 VB.NET 转换的人,我找到了这篇文章