什么是最好的C#到VB.net转换器?

在searchinterweb为我的VB.net问题的解决scheme时,我经常在特定主题上find有用的文章,但代码是C#。 这是没有什么大问题,但它需要一些时间手动将其转换为VB。 有一些站点提供了从C#到VB的代码转换器,反之亦然,但是在代码转换之后,修复所有的缺陷几乎与我自己一样花费时间。

直到现在我正在使用http://labs.developerfusion.co.uk/convert/csharp-to-vb.aspx

你知道更好的吗?

如果你找不到一个好的转换器,你总是可以编译c#代码,并使用Reflector中的编译器来查看Visual Basic代码。 一些variables名称将会改变。

Telerik是一个伟大的转换器。 http://converter.telerik.com/

SharpDevelop在C#和VB.NET之间有一个内置的翻译器。 不是完美的想法(例如,VB.NET中的可选值在C#中没有等价物,因此必须编辑转换器方法的签名),但是可以节省一些时间,因为您正在IDE中进行所有操作而不是一个网页(复制C#代码,粘贴,点击button,复制VB.NET代码,粘贴IDE:P)

我认为最好的做法是学习足够的其他语言,以便手动重写,在某些方面存在一些相当困难的差异,我不确定转换器能够很好地处理。 例如,比较我从C#到VB的翻译:

public class FileSystemEventSubscription : EventSubscription { private FileSystemWatcher fileSystemWatcher; public FileSystemEventSubscription(IComparable queueName, Guid workflowInstanceId, FileSystemWatcher fileSystemWatcher) : base(queueName, workflowInstanceId) { this.fileSystemWatcher = fileSystemWatcher; } 

 Public Class FileSystemEventSubscription Inherits EventSubscription Private myFileSystemWatcher As FileSystemWatcher Public Sub New(ByVal QueueName As IComparable, ByVal WorkflowInstanceID As Guid, ByVal Watcher As FileSystemWatcher) MyBase.New(QueueName, WorkflowInstanceID) Me.myFileSystemWatcher = Watcher End Sub 

C#来自Custom Activity Framework示例,我恐怕已经失去了它的链接。 但它包含一些令人讨厌的inheritance(从VB的angular度来看)。

我正在使用一个名为Language Convert的免费Visual Studio 2012插件

它在2010/2012年完美运行,不幸的是不在VS 2013工作。

这个转换并不是100%准确的,但它绝对是非常有帮助的,首次启动它有点棘手,请检查下面的图片: 在这里输入图像说明

最后我检查了一下, SharpDevelop有一个,它也是开源的。

卡洛斯·阿吉拉尔·马雷斯已经有一个在线转换约40前锋 – 代码翻译, 但我会同意reflection器是更好的答案。

您可以将您的DLL或EXE加载到Redgate(以前称为Lutz Roeder's) .Net Reflector中 ,从语言组合中select您的方法,然后select所需的语言。 所选方法的代码将以所选语言显示。

我希望这有帮助。

虽然没有回答你的问题,但我会说我的立场是一样的。

我意识到C#中的代码示例在我刚开始使用.NET时非常笨拙,但是在第一个项目(在我对.NET框架和VB.NET本身更熟悉之后)的几个星期之后,我发现它是有趣的,有时需要逆向工程C#代码。 不仅在语法方面,还要了解方法中细微的差异 – 在这方面开放思维是有益的。

随着我越来越多地了解这个框架,我坚持使用VB.NET,但是不久之后,我将倾向于使用C#,目的是成为“多语言”。

目前我使用的是我在CodeProject上find的VS2005插件( http://www.codeproject.com/KB/cs/Code_convert_add-in.aspx ); 它使用外部服务( http://www.carlosag.net/Tools/CodeTranslator/ )来执行翻译。

偶尔,当我离线时,我使用转换器工具( http://www.kamalpatel.net/ConvertCSharp2VB.aspx )。

你可以试试这个转换器 。 有C#到VB和VB到C#的function。

希望这可以帮助。

http://www.developerfusion.com/tools/convert/csharp-to-vb/(new url)现在支持.NET 3.5语法(再次感谢#develop),并且会自动复制结果到剪贴板:)