VB to C#

途中まですすめたVB.NETプロジェクトをC#.NETに書き換えています。おそらく10万行程度のコードだと思います。

まずSharpDevelpoでVB2008のプロジェクトをC#プロジェクトに一括変換し(確か、SharpDevelopはVB2010の変換ができない)、VS2010を使ってC#2008のプロジェクトをC#2010にアップグレード、SharpDevelopで変換できなかったVBのコードを少しずつ切り出し、インターネットサイトを利用しC#に変換しました。

機械的な変換処理でやれるところまでやって、VS2010C#でプロジェクトを開くとたくさんのエラーが表示されます。内容は一言でいえば、型指定等VBは緩くC#は厳しいことからくるエラーです。

VBではVariant型という大変便利な型がありましたし、その流れを汲んで暗黙の処理がたくさんあります。基本的にVBにはプログラミングする上で色々横着ができます。

また、モジュールというグローバル変数やメソッドを定義できる仕組みがありますし、メソッドにはオプショナルという引数にデフォルト値を設定できる仕組みがあります。また配列クラス変数に対して、プロパティを定義すればプロパティを使って配列要素にアクセスできますが、C#ではそれができません。

このようにC#は厳密といえば厳密、面倒といえば面倒な言語です。

C#プロジェクトを開くと、プロジェクト全体のエラーではなく、開いたコードに対してのエラーが表示されます。ざっと1ファイル(1000行程度か。Partial Classでは1クラスは数ファイルのことも)100程度のエラーが出てきます。エラーをつぶしていけば、後でみるファイルほどエラーの数は少なくなるでしょうが、どちらにしても相当数のエラーをつぶしさなければいけません。

私は長年VBを書いてきましたので、少し気取っていえば裏技的あるいは高度なVBの技法を取り入れていますので、その分C#への移植は難しくなります。

今は半分機械的にエラーをつぶしていますし、その場で分からないこと面倒なことはコメントアウトしていますので、とりあえずの作業の後に高度にC#を研究しなければいけないかもしれません。

フォームには大抵深刻なエラーがあってデザイン画面を表示することができません。すべての画面はつくりかえた方が早いでしょう。

VB2C#の変換は予想以上に大変な作業ですが、この際勉強だと思えば楽しみ半分です。

このプロジェクトのエラーをすべてつぶしたときには、一端のC#プログラマになっているでしょう。

error: コピーできません !!