-
Notifications
You must be signed in to change notification settings - Fork 0
MS_VBToCSharpConversion
nishi_74322014 edited this page Aug 12, 2026
·
1 revision
メモです。
補足(前提): VB.NET と C# は
同じ .NET(CLR / BCL)上で動くため、
相互変換は「言語の書き換え」に留まり、
VB 6.0 → VB.NET のような基盤ごとの移行とは難易度が桁違いである。
多くの構文は機械的に対応づけられる。
私は、Sharp Develop ver4.4 を使ってました。
(Open棟梁の VB プロジェクトを作成する際に)
補足(最新化:現在使える変換ツール): SharpDevelop は
開発終了(2016 年頃)しているため、現在は以下が使われる。
ツール 形態 備考 ICSharpCode.CodeConverter VS 拡張 / オンライン SharpDevelop チームの後継。事実上の標準 Telerik Code Converter オンライン 手軽。断片向け 各種 AI コーディング支援 IDE 拡張 文脈を見て書き換えられる(Copilot) ICSharpCode.CodeConverter は Roslyn ベースで、
プロジェクト単位の変換にも対応する。
補足: 機械変換で通っても、意味が変わることがある箇所。
項目 VB C# 注意 既定の厳密性 Option Strict Offが既定になりがち常に静的 暗黙の型変換・レイトバインドが消えるため、変換後にコンパイル エラーが多発する 配列の宣言 Dim a(10)は要素数 11new int[10]は 10オフバイワンを生みやすい 文字列比較 =はOption Compareに依存常に序数比較 Option Compare Textだと大文字小文字を無視していたNothing値型に代入すると既定値 nullは参照型のみNothing→defaultが正しいことがある整数除算 \が整数除算、/は常に浮動小数点/が型依存/をそのまま移すと結果が変わるイベント Handles句+=で購読デザイナ生成コードの扱いが変わる On Error Resume Nextあり 無し 設計ごと見直しが必要 特に 整数除算(
/と\) と 配列の上限 は、
コンパイルが通るのに結果だけが変わるため、発見が遅れやすい。変換後は必ずテストで確認すること
(単体・結合テスト方式を参照)。
- Visual BasicからC#への変換について - Qiita
https://qiita.com/yaju/items/3afb486bfbbddc1e6aa8 - C#のコードをVB.NETへ変換する、VB.NETのコードをC#へ変換する - .NET Tips (VB.NET,C#...)
https://dobon.net/vb/dotnet/links/convertcs2vb.html - icsharpcode/CodeConverter
https://github.com/icsharpcode/CodeConverter
Tags: 移行, .NET開発, プログラミング
このWikiは「Open棟梁Project」,「OSSコンソーシアム 開発基盤部会」によって運営されています。