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

Flo*_*ian 42 c# vb.net converter

在搜索interweb以寻找我的VB.net问题的解决方案时,我经常会找到有关特定主题的有用文章,但代码是C#.这不是什么大问题,但是手动将它转换为VB需要一些时间.有些网站提供从C#到VB的代码转换器,反之亦然,但是在代码转换之后修复所有缺陷几乎和我自己做的一样耗费时间.

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

你知道更好的事吗?

Dar*_*opp 22

Telerik拥有一个基于SharpDevelop 的良好转换器,多年来一直运行良好,但多年来一直没有更新(由于它基于SharpDevelop).

我最近也遇到过基于roslyn的转换器.我不知道它的工作情况有多好或维护得有多好,但由于它是开源的,你可以随时分叉并根据需要进行更新.


Hal*_*rim 18

如果找不到好的转换器,可以随时编译c#代码并使用Reflector中的dissasembler 来查看Visual Basic代码.一些变量名称将会改变.

  • 不幸的是,反射器中VB的反编译器非常错误.通常,您最终会得到编译的代码,但会产生不同的结果.尝试将此作为测试用例来评估代码转换器:double x = 3/2; 双y = 3.0/2; int z =(int)( - 3.5); "x"应为1.0(许多转换器产生的代码导致x = 1.5),y应为1.5,z应为-3(许多转换器产生的代码导致z = -4) (6认同)

Ric*_*res 12

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


小智 11

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

public class FileSystemEventSubscription : EventSubscription
{
    private FileSystemWatcher fileSystemWatcher;

    public FileSystemEventSubscription(IComparable queueName, 
        Guid workflowInstanceId, FileSystemWatcher fileSystemWatcher) : base(queueName, workflowInstanceId)
    {
        this.fileSystemWatcher = fileSystemWatcher;
    }
Run Code Online (Sandbox Code Playgroud)

变

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
Run Code Online (Sandbox Code Playgroud)

C#来自Custom Activity Framework示例,我担心我已经丢失了它的链接.但它包含一些讨厌的外观(从VB的角度来看).


Fer*_*ali 5

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

它在2010/2012完美运行,遗憾的是还没有在VS 2013上工作.

转换不是100%准确,但它肯定非常有用,首次启动它有点棘手,请检查下图: 在此输入图像描述