Вопрос

При поиске в Интернете решения моих проблем с VB.net я часто нахожу полезные статьи по конкретной теме, но код — C#.Это не большая проблема, но преобразование его в VB вручную потребует некоторого времени.Есть несколько сайтов, предлагающих конвертеры кода из C# в VB и наоборот, но исправление всех недостатков после преобразования кода занимает почти так же много времени, как если бы я делал это самостоятельно.

До сих пор я использую http://labs.developerfusion.co.uk/convert/csharp-to-vb.aspx

Знаешь ли ты что-нибудь получше?

Это было полезно?

Решение

Если вы не можете найти хороший конвертер, вы всегда можете скомпилировать код C# и использовать дизассемблер в Отражатель чтобы увидеть код Visual Basic.Некоторые имена переменных изменятся.

Другие советы

Телерик имеет хороший конвертер он основан на SharpDevelop, который работал довольно хорошо на протяжении многих лет, хотя уже много лет не обновлялся (поскольку он основан на SharpDevelop).

Недавно я столкнулся с конвертер на основе Roslyn, а также.Я не знаю, насколько хорошо он работает и насколько хорошо он поддерживается, но, поскольку исходный код у него открытый, вы всегда можете его разветвить и обновить по мере необходимости.

SharpDevelop имеет встроенный переводчик между C# и VB.NET.Не является совершенной мыслью (напр.необязательные значения в VB.NET не имеют эквивалента в C#, поэтому сигнатуру метода конвертера необходимо редактировать), но вы можете сэкономить некоторое время, поскольку все операции выполняются внутри IDE, а не на веб-странице (скопируйте Код C#, вставьте, нажмите кнопку, скопируйте код 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, и боюсь, я потерял на него ссылку.Но он содержит какое-то неприятное наследование (с точки зрения VB).

Сейчас я чаще всего использую эти два:

http://converter.telerik.com/

http://www.carlosag.net/tools/codetranslator/

Но также добились определенного успеха с другими:

http://converter.atomproject.net/

http://www.dotnetspider.com/convert/Csharp-To-Vb.aspx

http://www.developerfusion.com/tools/convert/csharp-to-vb/

Я использую бесплатный плагин Visual Studio 2012 с именем Преобразование языка

Он отлично работает в 2010/2012 году, но, к сожалению, пока не работает в VS 2013.

Преобразование не на 100% точное, но оно определенно очень полезно, запустить его в первый раз немного сложно, проверьте перед изображением ниже: enter image description here

Последний раз, когда я проверял, SharpDevelop есть один, и он тоже с открытым исходным кодом.

Вы можете загрузить свою DLL или EXE в Redgate (ранее Lutz Roeder). .Net Отражатель, выберите метод, а затем нужный язык из списка языков.Код выбранного метода будет отображаться на выбранном языке.

Надеюсь, это поможет.

Вы можете попробовать это преобразователь.Существует функциональность C# для VB и VB для C#.

Надеюсь это поможет.

У Карлоса Агилара Мареса был онлайн-конвертер уже около 40 раз - Переводчик кода но я бы согласился, что Reflector — лучший ответ.

Не отвечая на ваш вопрос, скажу, что сам был в похожей ситуации.

Я понял, что примеры кода на C# были неудобными, когда я только начинал работать с .NET, но через несколько недель после начала моего первого проекта (после того, как я ближе познакомился с инфраструктурой .NET и самим VB.NET) я обнаружил, что это было неуклюже. интересно, а иногда и полезно провести реверс-инжиниринг кода C#.Не только с точки зрения синтаксиса, но и изучения тонких различий в подходах — в этом отношении полезно быть непредвзятым.

Я придерживаюсь VB.NET, поскольку узнаю все больше и больше об этой платформе, но вскоре я окунусь в C# с намерением стать «многоязычным».

В настоящее время я использую плагин для VS2005, который нашел на CodeProject (http://www.codeproject.com/KB/cs/Code_convert_add-in.aspx);он использует внешний сервис (http://www.carlosag.net/Tools/CodeTranslator/) для выполнения перевода.

Иногда, когда я не в сети, я использую конвертер (http://www.kamalpatel.net/ConvertCSharp2VB.aspx).

Тот, что в http://www.developerfusion.com/tools/convert/csharp-to-vb/ (новый URL-адрес) теперь поддерживает синтаксис .NET 3.5 (еще раз спасибо ребятам из #develop) и автоматически копирует результаты в буфер обмена :)

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top