Подтвердить что ты не робот

Какой лучший конвертер С# для VB.net?

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

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

Знаете ли вы что-то лучше?

4b9b3361

Ответ 1

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

Ответ 3

SharpDevelop имеет встроенный переводчик между С# и VB.NET. Не идеальная мысль (например, необязательные значения в VB.NET не имеют эквивалента в С#, поэтому подпись метода конвертера должна быть отредактирована), но вы можете сэкономить некоторое время, так как вы делаете все операции внутри IDE а не веб-страницу (скопируйте код С#, вставьте, нажмите кнопку, скопируйте код VB.NET, вставьте в IDE: P)

Ответ 4

Я думаю, что лучше всего учиться на другом языке, чтобы вы могли переписать вручную, там некоторые довольно сложные различия в некоторых аспектах, что я не уверен, что конвертер будет работать очень хорошо. Например, сравните мой перевод с С# на 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

С# из образца пользовательской активности, и, боюсь, я потерял ссылку на него. Но он содержит некоторое неприятное видение наследования (с точки зрения VB).

Ответ 6

Я использую бесплатный плагин Visual Studio 2012 с именем Language Convert

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

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

Ответ 7

Последнее, что я проверил, SharpDevelop имеет один, и он тоже с открытым исходным кодом.

Ответ 8

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

Ответ 9

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

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

Ответ 10

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

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

Я придерживаюсь VB.NET, поскольку я все больше узнаю о структуре, но вскоре я окунусь в С# с намерением стать "многоязычным".

Ответ 11

В настоящее время я использую плагин для 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).

Ответ 12

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

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

Ответ 13

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