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%准确,但它肯定非常有用,首次启动它有点棘手,请检查下图: 在此输入图像描述