(4) 途中経過報告
ConvertCSharp2VBでも変換を試してみました。
しかもエラー発生時、そこだけスルーではなく変換動作中止。
使えねぇ。
つことで当分C# to VB.NET Translatorひと筋ってことでひとつ。
dxmutdata.csで、PrivateなDevice型の変数「device」と、PublicなDevice型のプロパティ「Device」が宣言されていることが判明。
VBは大文字小文字を区別しないんだよぅ…(T-T)
このへんはミックスドランゲージソリューションとかC#/C++製DLLとかでいつも泣いていたりする部分なんですが。
Lower/Upper Caseを区別しない(abc = ABC)仕様はBASICの伝統なんですよね。
でもってVB IDEでは、宣言(または初回使用)した時の大文字小文字の組み合わせに自動的に直してくれるといぅお助け機能がついていまして。
例えば、
Dim intHoge As Integer
inthoge = 12345
なんてのがあると、2行目を入力して改行すると自動的に
intHoge = 12345
と、「h」→「H」と直してくれるわけです。
変数やらオブジェクトやらを必ず大文字小文字混ぜ合わせて命名し、実コードではすべて小文字で入力するよぅにすると、大文字変換されなければスペルミスとかスコープミスとか、そのへんのあぶり出しができて便利だったわけです。
C#はまったく経験がないのであれですが、C/C++の時は変数名や関数名の大小文字を間違っただけで別モノとして扱われるため、スペルミスなんかのあぶり出しがちょっとめんどくさかったんですよね。
もっともC/C++では未定義で変数や関数を使えませんから、コンパイル時のエラーからあぶり出せます。ので実害があるわけではないんですけどね。
おたがいそれぞれのいきさつがあっての現状ですから、ここを変えるわけにはいかないでしょう。
C/C++/C#の仕様を変えると過去資産の流用ができないケースが出てきますし、VBの仕様を変えるとプログラミングスタイルの変更を強制しなくちゃなりませんし。
つころで、今回はとりあえずPrivate型変数の方を「lDevice」に置き換えてしのぐこととしました。
外側に提供されない部分を変える分には影響ありませんしね。