VB.net C# 代码转换工具-2篇

来源:互联网 发布:网络法律法规对游戏 编辑:程序博客网 时间:2024/06/06 01:48

摘自 计算机世界报 2005年09月12日 第35期 C9

本文作者介绍了几款实现C#和VB.net项目之间相互转换的工具的安装和使用方法,以及它们各自的优点和缺点。

  也许你需要把你以前的VB.net项目迁移到C#,或者与此相反,不是每个.net程序员都同时精通C#和VB.net。也许你需要读懂用VB.net写的示例代码或者共享的源码,但是你又恰好只熟悉C#,这时候你就需要一种转换软件来帮助你快速、准确地完成你的工作。

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

  VB.net转换为C#

  1. VB.net to C# Converter(下载地址:http://www.vbconversions.com/)

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

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

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

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

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

  C#转换为VB.net

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

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

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

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

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

  ● 新建一个asp.net Web 服务的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文件夹中的每个文件分别读取需要转换的代码,调用该Web Service中的TranslateCSharpToVB( )方法进行转换,最后输出转换后的代码到页面的form代码容器。

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

  3.使用C# to VB.net Converter

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

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

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

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

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

  手工转换

  以上提到的是使用工具实现C#和VB.net之间的转换,但是在时间和工作量允许的情况下,你也可以完全通过手动修改实现C#和VB.net之间的相互转换。当然这样做的好处是明显的,首先你可以全面了解两种语言的语法和构造的差别,并可以通过一门语言学习另外一门语言。其次,也可以有效地避免上面提到的转换软件在特定情况下可能产生的错误。因为,虽然我们可以使用自动化工具实现转换,提高我们的工作效率,但至今却还没有一种工具能够实现100%的无差错转换。因为,大多数的转换软件都是基于字面和语法的转换,而不是基于程序逻辑的转换,所以程序转换过程中就可能因为程序逻辑不被理解而发生如前面提到过的错误,因此使用自动化工具转换后我们还是要进行测试和少量修改的,同时了解一定的C#和VB.net的语法和它们之间的差别对我们还是很有好处的。如果采用手工转换,那么C#和VB.net之间的语法对照表可能对你有用,可以参考以下网址:http://www.harding.edu/USER/fmccown/WWW/vbnet_csharp_comparison.html。

(用了下,效果还好,单个单元转化还不错,但VB.NET to C#转换有很多明显的错误,

IList List;
 List(index) --> 转为List(index)而不是List[index]
ToString,ToLower,GetNextEntry
 不会转化为加()

=========================================================

关于VB.Net C#代码转换工具

1.http://www.kamalpatel.net/(最常用的,不过对于16进制的Int不能正常转换)
在线版:VB.Net => C#   C#=>VB.Net
离线版:C#=>VB.Net
2.http://csharpconverter.claritycon.com/(推荐!非常好用的一个,几乎没出过太大的问题。)
在线版:C#=>VB.Net
离线版:C#=>VB.Net
3.http://www.ragingsmurf.com/
在线版:C#=>VB.Net
4.http://aspalliance.com/
在线版:C#=>VB.Net
5.http://developerfusion.com/
在线版:VB.Net => C#   C#=>VB.Net

(转:http://happy555.cnblogs.com/archive/2005/07/05/186745.html)

 

本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/pengjun520/archive/2006/05/02/705013.aspx

原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 被娱乐天地骗了怎么办 win8更新失败无法开机怎么办 安装英雄联盟文件损坏怎么办 电脑玩lol运行内存不足怎么办 守望先锋账号冻结了怎么办 守望先锋服务器发生意外错误怎么办 在先锋社保缺一年上学怎么办 lol更新后反应很慢怎么办 电脑跳舞毯不正常电脑游戏怎么办 PS中缺失的字体怎么办 黑板墙不想要了怎么办 淘宝代练打坏了怎么办 绝地求生与ipad不兼容怎么办 小米手机玩绝地求生卡怎么办 绝地求生服务器目前非常繁忙怎么办 玩绝地求生手机发烫怎么办 绝地求生刺激战场延迟高怎么办 怀孕八个半月打喷嚏头疼怎么办 20岁打喷嚏漏尿怎么办 鼻炎犯了不停打喷嚏怎么办 鼻炎犯了不停打喷嚏流鼻涕怎么办 感冒鼻痒怎么办小窍门 腰扭了屁股也疼怎么办 小三把房子过户怎么办 小三把房子卖了怎么办 打印机ip地址变了怎么办 电脑ip地址错误不能上网怎么办 修改了注册表电脑无法启动怎么办 香水喷到衣服上有印怎么办 家里一股猫的味道怎么办 干菊花里面有虫怎么办 安装时显示程序已关闭怎么办 电脑一直重启开不了机怎么办 应用安装在sd卡打不开怎么办 安装ps打不开安装包怎么办 安装好的软件打不开怎么办? win10系统语言修改不了怎么办 一个月婴儿吵夜怎么办 玩游戏一直闪退怎么办 钱站一直闪退怎么办 win7重装连不上网怎么办