C#とVB.NETのソース相互変換
.NETは複数の言語で開発が可能という特徴があるが、それが却って災い?することがある。それは.NET開発者向けのサイトに掲載されている、サンプルコードの実装も複数存在しいることだ。MSDNであれば全ての言語でのサンプルをを見ることができるが、個人サイトだと丁寧な所でもVB.NETとC#の両方がサポートされているのは稀で、大抵はどちらか一方のソースコードだけしか掲載されていない。
私はVisual Basic2.0でオープン系の開発に触れた人間なので、本来VB系のソースは追えるのだが、C, DelphiからJavaを経てC#に来た今はVB系のソースを追うのは正直面倒だ。
Convert VB.NET to C#(C# to VB.NET)/ DEVELOPERfusion
このサイトではC#とVB.NETのソースコードの相互変換を行ってくれる。どれ位の規模まで可能かは試してはいないが、ちょっとしたサンプルコードであれば十分なのではないだろうか。どのような方法を取っているのか解らないが、変換も非常に速い。しかし、残念ながらC#からVB.NETへの変換の際にGenericsを使用していると変換に失敗してしまうので、Genericsを含むコードは変換を諦めるか、Genericsを外して変換するしかないようだ。あと、コメントは全て外されてしまい変換後には消えてしまう。
追記:
どうも変換が完全ではないようだ。例えば、スーパクラスのコンストラクタ記述が上手くいかない。
変換前
Public Sub New(ByVal hoge As Object, ByVal foo As String) MyBase.New(hoge , foo ) End Sub
変換後
public HogeClass(object hoge, string foo) { base.New(hoge, foo); }
こうやって、変換前と後をチェックしているうちにVB.NETのソースコードに慣れてしまうのかもしれない。(それが狙いだったりして)