LoginSignup
5
6

More than 3 years have passed since last update.

SharpDevelop で、VB.Net を C# に変換してみた( その1 )

Last updated at Posted at 2021-04-14

背景

残念な事に、こちらなどでも発表されているように、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 から使用可能になっていた補完文字列がエラーになります。

NG
Dim str = $"{変数}"

2. こちらは、Visual Studio 2010 からの機能ですが、自動実装 Property もエラーになります。

NG
Public Property Hoge As String

3. これは、やむなしという気もしますが、変数名に「〇」という文字を使っているとエラーになります。( 伏字じゃなくて本当に「〇」です。そもそも使うなよって話もある気がしますが )

NG
Dim  As Integer

4. 複数行テキストがエラーになります。

NG
Dim str = "
1行目
2行目
"

5.括弧を全角で書いていたところがエラーになる。というかこれがエラーになってなかったのがびっくり。これは直そうよって感じですね💦

NG
Dim value = (1+2*3

6.Nullable もエラーですね。こちらも Visual Studio 2015 ではできてた気がします。

NG
Dim value As Integer?

まだ、コンパイルすら通るようになっていないので、画面デザイン系はチェックすらできてません。
(ただ、一応、変換はできてました)

他にもまだまだ問題点がありそうです。
とりあえず上記を手修正で変換して、その2に続きます💦

5
6
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
6