什么是最好的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度来看)。
我目前最常用这两个:
http://www.carlosag.net/tools/codetranslator/
但也有一些与这些其他成功:
http://converter.atomproject.net/
我正在使用一个名为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),并且会自动复制结果到剪贴板:)