はじめに
これは、Visual Basic Advent Calendar 2018の3日目の記事となります。
Visual Basic と C# の相互変換する方法について書いていきます。
VB6.0からVB.NETに変換
マイクロソフトは、旧VB製アプリケーションのVB.NETへの移行を容易にするアップグレードウィザードを、Visual Studio 2008までは実装しましたが、Visual Studio 2010 以降からは廃止しました。
よって、Visual Studio 2008 で変換したものを Visual Studio 2010 以降で変換するという二段階のアップグレードが必要になります。
Visual Studio 2008 Express Edition CD(DVD)イメージ版のダウンロードはまだ可能でした。
Visual Studio 2008 Express Edition with Service Pack 1 Combo DVD
ここ数年内でVB6からVB.NETへのマイグレーションされた方の記事がありました。
VB.NETとC#の相互変換
AIによる変換
AIにてプログラミング言語を指定して、VB.NETからCsharpに変換します。
オンライン
ちょっとした関数の変換ならオンラインを使うのが手っ取り早いです。
オンラインで結果が返ってこないサイトがあるなかで、下記サイトは結果がすぐに返ってきました。
Telerik Code Converter
http://converter.telerik.com/
オフライン
SharpDevelop
SharpDeveloper Ver 5には変換機能がなくなりましたので、ダウンロードページからSharpDeveloper Ver4.4 をダウンロードしてください。
https://github.com/icsharpcode/SharpDevelop/releases
Visual Studio 2017で作成したものは、プロジェクトを開いた段階で下記のエラーになり正常に開けませんでした。
Error loading xxxxxx.vbproj:
The Tools version "15.0" is unrecognized.Available tools versions
are "12.0","14.0","2.0","3.5","4.0".
xxxxxx.vbproj
Visual Studio 2015のプロジェクトは開くことができました。
プロジェクトの右クリック→Convert→From VB.NET to C#
【2021/04/15追記】
Visual Studio 2017以降で作成したものは、Solution ファイルを編集すれば開くことができるようになります。
Language Convertプラグイン
Visual Studio 2015の変換プラグインになります。
https://marketplace.visualstudio.com/items?itemName=LuPaLaPaoloSalamone.LanguageConvert
dnSpy
オープンソースの.NET のデコンパイルツールです。
https://github.com/0xd4d/dnSpy
MSILのコードをVisual Basic(VB)、C#のどちらのかたちにも戻すことができます。
- [.NET のデコンパイル、デバッグ、ソースの編集も可能なオープンソースのツール dnSpy]
(https://troushoo.blog.fc2.com/blog-entry-312.html) - 凄すぎて大草原不可避な.NET デコンパイラdnSpyを使ってみる
参照
最後に
Visual BasicからC#への変換する記事を見つけても情報が古いのが多いので、ここらへんで情報を改めてみました。
Visual Studio 2015までが変換の限度っぽいですね。