专栏首页葡萄城控件技术团队分享自制的C#和VB Code互转工具

分享自制的C#和VB Code互转工具

作为.NET程序员,往往习惯使用一种语言(据我观察,2006年后的程序员习惯用C#,之前的喜欢VB)。而对于另一种语言虽然能读懂但是写起来总是比较费事。尤其面对旧的项目升级或者才考其他网上的开源资源的时候,总会很麻烦。于是诞生了很多VB和C#互转的工具,例如Developerfusion的CsharpToVB工具。不过那是在线版本的,可能受到网络条件限制,反应很慢或者干脆由于禁网无法访问。综上,我准备自己写一个C#和VB的互转工具,方便大家使用。

工具简介

该工具主要针对文件夹,进行批量转换。它能把SourceDirectory文件夹以及所有子文件夹下的C#和VB文件,按照原有目录结构转换后,保存到TargetDirectory中。其中转换功能基本等同于developerfusion的工具。(http://www.developerfusion.com/tools/convert/csharp-to-vb/)比如关键字foreach和#region都可以正确转换。不过目前还有些问题,挂事件和一些资源的引用转换有待完善。先发出来请大家用用,欢迎多提意见~

程序界面

界面如下:(比较屌丝,将就着看吧)

使用的第三方库

该工具中使用的是开源项目 <SharpDevelop> 的库,分别引用了

ICSharpCode.Core.dll

ICSharpCode.NRefactory.dll

ICSharpCode.SharpDevelop.Dom.dll

log4net.dll

Mono.Cecil.dll

使用方法

该库的用法如下:

using ICSharpCode.SharpDevelop.Dom.NRefactoryResolver;

CodeSnippetConverter converter1 = new CodeSnippetConverter();

converter1.CSharpToVB(code, out errors);

converter1.VBToCSharp(code, out errors);

工具和源码

工具:CS_VBConverter.rar

源码:SourceCode.rar

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Silverlight4控件纯客户端注册验证

    本文实现了一个实验性的Silverlight控件纯客户端注册验证机制。希望做过这方面的朋友多给些指导性意见。 先给大家介绍一下Silverlight客户端...

    葡萄城控件
  • C# 8.0的三个值得关注的新特性

    image.png C# 语言是在2000发布的,至今已正式发布了7个版本,每个版本都包含了许多令人兴奋的新特性和功能更新。同时,C# 每个版本的发布都与同...

    葡萄城控件
  • ASP.NET 5系列教程 (六): 在 MVC6 中创建 Web API

    ASP.NET 5.0 的主要目标之一是统一MVC 和 Web API 框架应用。 接下来几篇文章中您会了解以下内容: ASP.NET MVC 6 中创建简单的...

    葡萄城控件
  • C# 通过 probing 指定 dll 寻找文件夹

    在很大的项目开发,会发现项目引用的 dll 会很多,我想要按照不同的功能,将不同的 dll 放在不同的文件夹

    林德熙
  • [ Linux驱动炼成记 ] 15 - 存储器EMMC中Ext4文件系统 中 磁盘空间占用率100%

    **产品现象 : ** 设备(Linux 系统) 运行一段时间后,其中某一个分区 /et/config 突然占用率为100%,而实际空间可能1%都不到。 这种...

    程序手艺人
  • 形态学滤波(六)

    形态学滤波(六) 之二维形态学腐蚀/膨胀子模块设计 按照二维扩展的思路,将每一行的一维算子的计算结果对齐在列方向上再进行一维运算,得到的结果即是二维运算结果。 ...

    anytao
  • 疑难杂症又一记

    下了 OGRE 的 1.10.11 版本,使用 CMake 生成了相应的工程文件,遂而编译源码和示例,一切都挺顺利,但是当尝试 Debug 模式下执行 Samp...

    用户2615200
  • Java-匿名子类(匿名内部类)

    版权声明:署名,允许他人基于本文进行创作,且必须基于与原先许可协议相同的许可协议分发本文 (Creative Commons)

    Fisherman渔夫
  • LinkedBlockingQueue和ArrayBlockingQueue对比

    对比一下LinkedBlockingQueue和ArrayBlockingQueue的区别。

    IT云清
  • Condition控制线程通信:java三个线程循环打印ABC

    private Lock lock = new ReentrantLock(); private Condition c1 = lock.newConditi...

    用户1215919

扫码关注云+社区

领取腾讯云代金券