将Visual Basic(.net 1.1)项目转换为C#

时间:2012-09-16 18:21:55

标签: c# .net vb.net visual-studio

我有一个非常古老的Visual Basic(.net 1.1)项目,我愿意继续开发,但不是在Visual Basic而是C#。 有没有办法将其转换为C#?我可以想到两个选择:

  1. 使用在线提供的源代码转换器(但大多数时候它们都会失败,项目很大)
  2. 编译并将其反编译为C#(虽然我会丢失评论和编译标记)
  3. 进行此转换的推荐方法是什么?

3 个答案:

答案 0 :(得分:3)

鉴于.NET自.NET 1.1以来已经发生了相当大的变化 - 特别是,有更多的库可用会改变你接近各种任务的方式 - 我很想重新开始。鉴于您已经在改变.NET版本和语言,即使只是为了获得直接端口,您也需要投入大量工作......所以为什么不从现有项目中学到经验,并投资创建一个新的?

(我知道Joel's blog post on rewriting,但如果你已经决定通过将其转换为另一种语言来进行伪重写,我认为无论如何都有一些痛苦是不可避免的。)

答案 1 :(得分:1)

对于编写良好的VB 1.1,在线转换器应该做得不错。我会尝试批量转换项目的文件,然后手动浏览它们以查找明显的错误。

在线转换器倾向于扼杀在最新版本的.NET中引入的功能(出于好的理由 - 这些功能在编译期间导致更基本的代码转换,即它们使语言更加困难)。 p>

/编辑:但Jon说的有其优点:.NET 1.1与现代.NET完全不同,并且在很多方面都不如现代.NET,并且自动转换无法帮助您将现代语言和CLR功能应用到代码。

答案 2 :(得分:0)

刚刚重读Jon Skeet提到的Joel的帖子,我会说接受他的建议。编写一个引用旧VB.NET项目的新C#项目,并将代码从旧项目一点一点地移动到新项目中,一次一个类。每次需要修改内容时,将相关代码从旧项目移动到新项目。

这应该有一些好处:

  1. 有效且无需触及的旧代码可以保持不变。
  2. 在您甚至可以运行程序之前,您没有完全重写数周或数月繁琐的代码翻译所需的开销。