#背景
残念な事に、こちらなどでも発表されているように、VB が、Microsoft での言語としての発展が終わってしまうようです。
まだ使えるようですが、いい加減 C# に乗り換えようと思って調べたメモです。
まだまだやりかけですが💦
#情報収集
英語でも検索しましたのが、この需要自体が日本に多いのか、日本語サイトの情報がほとんどでした。
どこも似た様な内容でしたが、とりあえずこちらを参考。
オンラインのツールは、ソースを外部に送ることになってイマイチだし、複数のファイルを一括でできないこともありとりあえず今回は見送り。
Visual Studio の変換プラグインは、どうにも評判が悪そうだし、どのサイトでも SharpDevelop がよさそうなんで、SharpDevelop でやってみることにしました。
#ダウンロード
SharpDeveop は、Ver.5 から VB 対応がなくなってしまったので、その前の Ver.4.4 をこちらから Download。
Archive サイトですが、公式からも上記のリンク先に飛びます。
#やってみる
とりあえず開くと、速攻でエラーになります。古いバージョンなので、Visual Studio 2015 までしか対応していないようです。
ただ、バージョンチェックしているだけっぽいので書き換えてみます。
まず Solution ファイルを編集。
VisualStudioVersion = 16.0.29409.12
VisualStudioVersion = 12.0.29409.12
次に Project ファイルを編集
<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
これをやると、無事ソリューションが開けました。
開けたら、実行は簡単でプロジェクトを右クリックして、[Convet]→[From VB.NET to C#] を選択。
#問題点
とりあえず、まだまだ実用になってないですが、現在時点で下記の問題点がでました。
1. 当たり前ですが、Visual Studio 2017 から使用可能になっていた補完文字列がエラーになります。
Dim str = $"{変数}"
2. こちらは、Visual Studio 2010 からの機能ですが、自動実装 Property もエラーになります。
Public Property Hoge As String
3. これは、やむなしという気もしますが、変数名に「〇」という文字を使っているとエラーになります。( 伏字じゃなくて本当に「〇」です。そもそも使うなよって話もある気がしますが )
Dim 〇 As Integer
4. 複数行テキストがエラーになります。
Dim str = "
1行目
2行目
"
5.括弧を全角で書いていたところがエラーになる。というかこれがエラーになってなかったのがびっくり。これは直そうよって感じですね💦
Dim value = (1+2)*3
6.Nullable もエラーですね。こちらも Visual Studio 2015 ではできてた気がします。
Dim value As Integer?
まだ、コンパイルすら通るようになっていないので、画面デザイン系はチェックすらできてません。
(ただ、一応、変換はできてました)
他にもまだまだ問題点がありそうです。
とりあえず上記を手修正で変換して、その2に続きます💦