详解讨论如何完成C#转换为VB.NET

VB.NET有很多值得学习的地方,这里我们主要介绍C#转换为VB.NET,也许你需要把VB.NET项目迁移到C#,不是每个.NET程序员都同时精通C#和VB.NET。也许你需要读懂用VB.NET写的示例代码或者共享的源码,但是你又恰好只熟悉C#转换为VB.NET,这时候你就需要一种转换软件来帮助你快速、准确地完成你的工作。

以下分别对目前流行的几种转换软件列出了安装、使用的方法,以及它们各自的优点和缺点,希望能帮助读者更快地找到自己需要的软件,并尽快部署、使用,解决工作中的问题。

VB.NET转换为C#

1.VB.NETtoC#Converter

VB.NETtoC#Converter是一款离线转换软件,安装简单,提供试用版,而且试用版永不过期,但是试用版只能翻译不超过600行源码的工程。VB.NETtoC#Converter将用户的VB.NET项目用C#语言重新编写,同时变量名、注释行都被保留下来。它具有完备的功能,提供专业的报告生成工具,而且能够对转换过程中的错误生成错误记录,并且在此基础上提供错误分析和提供修改建议。总之,它是一款充分为使用者考虑的,功能完备的转换工具。

它提供多种类型工程的转换,包括WindowsForms工程、Console工程、WindowsControl库、WebControl库、WebServices工程、WindowsService工程。提供多种形式的转换,包括单一工程、多个工程、交互式代码转换、命令行形式转换。大多数的VB函数都能转换为相应的C#功能,而且注解等也能得到很好的转换。可以使用向导,并提供在线帮助。转换准确率高达99%。

但是,它不支持中文,中文注解会生成乱码。完整版需要购买。

2.在线VB.NET程序转换为C#

在线转换的网址是http://www.developerfusion.co.uk/utilities/convertvbtocsharp.aspx。使用方便,而且免费。只是目前正在试用阶段,转换后程序错误较多,并且在转换后的代码里不包含注释,这是因为转换后的代码在返回之前,首先被翻译为抽象树,而目前的这种树状结构把注释都忽略了。

C#转换为VB.NET

1.C#转换为VB.NET,Translator实现单个文件的转换

这是一个使用WebServices的在线解决方案,转换界面已经简单的不能再简单了。你要做的只是把你的C#代码拷贝、粘贴到输入框中然后点击翻译(Translate)按钮。它可以免费使用,但必须在线转换(网址是http://authors.aspalliance.com/aldotnet/examples/translate.aspx)。现在,它还不能处理标签(tags)或者任何HTML,所以你的C#代码必须是纯的C#。并且,它只能转换一个文件,不能转换整个目录。

2.使用WebServices代理实现整个目录中文件的转换

基于以上的WebServices,XMLforASP.NETDevelopers提供了可以实现整个目录转换的解决方案,你可以在下面网址看到它的示例代码和解决方案:http://www.xmlforasp.NET/codeSection.aspx?csID=44。这种转换方式可以免费使用,并能转换整个目录。XMLforASP.NETDevelopers上的解决方案实际还是调用C#toVB.NETTranslator的WebServices,只是扩展了C#toVB.NETTranslator的功能,但是部署要麻烦许多,需要自己建立工程,并添加引用。

为了方便大家更好地理解XMLforASP.NETDevelopers的解决方案,在这里对解决方案的实现步骤做进一步阐述。其具体步骤如下:

◆新建一个asp.NETWeb服务的C#工程ConvertC。

◆在工程中添加Web引用http://authors.aspalliance.com/aldotnet/examples/csharptovbtranslator.asmx?WSDL。该引用自动命名为com.aspalliance.authors.

◆在该工程根目录下添加CsharpFiles文件夹,将需要转换的C#文件另存为.txt文本文件放到文件夹下。

◆添加新的Web窗体ConvertCtoVb.aspx,在该窗体中添加id为CSharptoVBCon-verterFrm的form。

◆双击ConvertCtoVb.aspx生成ConvertCtoVb.aspx.cs文件。该文件首先要实例化Web引用com.aspalliance.authors中的CSharpToVBTranslator类,并取得id为CSharptoVBCon-verterFrm的form作为代码容器,然后对CSharpFiles文件夹中的每个文件分别读取需要转换的代码,调用该WebService中的TranslateCSharpToVB()方法进行转换,最后输出转换后的代码到页面的form代码容器。

◆设置ConvertCtoVb.aspx为初始文件,运行该工程,CsharpFiles文件夹下的所有文件就可以从c#转换到vb.NET了。

3.使用C#转换为VB.NET,Converter

该软件下载地址是http://csharpconverter.claritycon.com/。该软件提供在线和离线两种方式实现C#toVB.NET的转换,而且离线版安装简单,使用方便。但在某些情况下转换不太准确,其实这些情况在其他一些转换工具中也普遍存在。这就需要我们了解一些C#和VB.NET之间的差别,下面就列出了几种需要手动修改的情况。需要注意的是,这些情况也是我们在使用别的转换软件实现自动转换后,应该重点检查的部分。

◆C#中引用比较和值的比较都使用“==”关键字,而VB.NET使用“is”关键字做引用比较,使用“=”来做值的比较,所以当C#程序中使用“==”来做引用比较时会出现转换错误。修改方法是:转换后,所有的引用比较中都用“is”替换“=”。

◆C#中字符连接符和加法运算符都使用“+”,所以当C#中使用“+”作为字符连接符时将引起C#中的字符连接符“+”不能正确的转换为VB.NET中的字符连接符“&”。修改方法是:转换后,手动修改字符连接符“+”为“&”。

◆因为VB.NET是大小写不敏感的,C#转换后可能出现重名。修改方法是:手动修改成恰当的惟一名字。

◆注释有时不能加载到正确位置。修改方法是:手动把注释调整到正确位置。

相关推荐