Преобразование кода из Visual Basic 6 в C # лучше всего выполнять с помощью инструмента автоматической миграции, например ArtinSoft * Visual Basic Upgrade Companion , который поддерживает миграцию на C #.Есть несколько причин для этого предложения, кроме моего опыта работы с инструментом.
Во-первых, даже если вы переходите с VB6 на VB.NET, в VB.NET есть несколько специфичных для языка функций, которые не будут напрямую переводиться в C #.Таким образом, даже если вы используете конвертер VB.NET в C #, вам придется работать с этими особыми случаями (или найти инструмент, который их обрабатывает для вас).Они могут включать в себя необязательные параметры, функции AddressOf, вспомогательные операции компилятора Visual Basic, такие как Information.Err (), и обработку неструктурированных ошибок для структурированной обработки ошибок с использованием операторов Try / Catch.Еще одна вещь, которую следует учитывать, это то, что компилятор VB.NET ограничен отображением только 100 ошибок компиляции, и ошибки компиляции могут быть довольно распространенными при миграции.При переходе на C # компилятор и другие инструменты анализа кода, такие как ReSharper, могут дать вам более полное представление о предстоящей задаче и помочь вам обнаружить распространенные шаблоны ошибок компиляции.
Во-вторых, переходя непосредственно на целевой язык, вы можетесосредоточиться на использовании функций, доступных для этого языка с самого начала, без промежуточных шагов.В противном случае вы в конечном итоге будете выполнять две миграции, если сосредоточитесь только на одной.
В-третьих, как сказал Реник, даже если инструменты миграции могут создавать сотни или тысячи проблем, большинство из них имеют относительно простые решения.,Некоторые из них можно исправить с помощью функции поиска и замены.Коммерческие решения имеют дополнительное преимущество, заключающееся в том, что они поддерживают миграцию сторонних элементов управления пользовательским интерфейсом в эквиваленты .NET.
Также миграция может быть намного быстрее, чем перезапись, вам все равно придется писать код, но только для областейгде есть проблемы.
Конечно, есть приложения, для которых миграция не является опцией, но для тех, которые соответствуют сценарию использования для миграции, это очень эффективный способ переключения платформ.Вы не должны сбрасывать со счетов опцию сразу.