在编程领域,代码转换是一个常见需求,尤其是在需要将旧代码库迁移到新的平台或语言时。本文将介绍如何将不同编程语言的代码转换为.NET环境下的语言,包括VB6、ASP、Java、PHP、Delphi、C++和ColdFusion等。
在许多编程论坛上,经常可以看到与代码转换相关的问题。例如,一个使用VB.NET的用户可能会收到一个用C#编写的解决方案,而不是他们期望的VB.NET。这时,用户可能会询问如何将代码转换为VB.NET。虽然在线转换器是一个选择,但有时用户可能因为网络连接问题而需要一个离线转换器。本文旨在为这些用户提供帮助。
SharpDevelop是一个开源的.NET开发环境,可以从下载这个工具。它提供了丰富的功能,并且有一个,可以通过它来解决任何疑问。使用SharpDevelop,可以轻松地进行代码转换。
目前,SharpDevelop支持以下语言的代码转换:
安装SharpDevelop后,创建一个空白项目并编写一些代码。例如,在这里编写了一些C#代码。现在点击“工具”菜单,选择“转换代码为”选项,并选择想要转换的语言(在这里,选择了VB.NET)。就这样,代码已经被转换,并生成在一个新的文件中。
除了SharpDevelop,还有一些离线转换器,例如:
在进行代码转换之前,请确保代码是可工作的。例如,如果遗漏了一个大括号或其他东西,那么转换将显示语法错误而不是输出。
从SharpDevelop:
converter uses SharpDevelop's NRefactory to perform the conversion. For the conversion to work properly, you have to paste a full class or source code file because we don't do "magic" RegEx's or string replacement - our code converter uses a full blown parser, and that's why the source code must be valid.
即使转换器也不会100%转换代码。主要原因是某些功能在特定语言中不存在,请参阅“进一步阅读”部分。即使商业工具也只能转换99%的代码,或者可能需要重写代码。
阅读并查看这篇文章,其中包含了避免/重写代码的好和坏的理由。
如果不想转换代码,也可以在应用程序中使用多种代码,参见以下内容:
Christian Graus写道:
VB6已经过时了十年,而且一直很糟糕。为什么在2011年还有人在使用VB6?自虐?一个拒绝与时俱进的恐龙?VB6已经死了,而且一直是个笑话。为什么还在使用它?
在VS中,有一个向导可以将VB6转换为VB.NET。据所知,没有免费软件可以将VB6转换为VB.NET。顺便说一句,即使使用转换器转换代码,也不会100%成功,需要做一些/更多的手动更改。特别是如果使用了任何第三方组件,那么这将是一个大麻烦,因为它们(第三方)总是在每个版本中改变东西,所以VB6代码将在VB.NET中显示语法错误。
将ASP转换为ASP.NET
Java语言转换助手2.0
微软公告:
由于客户告诉现有的J#功能集基本上满足了他们的需求,并且J#的使用量正在下降,微软将退役Visual J#产品和Java语言转换助手工具,以便更好地分配资源以满足其他客户的需求。J#语言和JLCA工具将不会出现在Visual Studio的未来版本中。为了保护客户在J#上的现有投资,微软将继续支持与Visual Studio 2005一起发布的J#和JLCA技术,直到2015年,按照产品生命周期策略。
从PHP迁移到ASP.NET
Delphi.NET