GreatMigrationsのVB6/ASP / COM分析およびリエンジニアリングツールであるgmStudioを使用すると、コンパイラによって生成されたpcodeを解釈して作成するときに、「文字列マシン」で使用される「サーフェスフォーム」を変更することでこれらを制御できます。希望する表記で。たとえば、Lenのデフォルトのサーフェスフォームは次のとおりです。
<subcode id="Len">
<vbn role="function" narg="1" code="Strings.Len(%1d)"/>
<csh role="function" narg="1" code="VBNET.Strings.Len(%1d)"/>
</subcode>
Len操作用に発行されたC#コードをカスタマイズするには、オーバーライドを適用して、カスタム変換構成を作成します。
<subcode id="Len">
<csh role="function" narg="1" code="%1d.Length"/>
</subcode>
プレースホルダー%1dは、元のパラメーターをC#コードストリームに出力する場所を示します。
これは非常に単純なケースを単純化したものですが、それがアイデアです。
注:デフォルトのサーフェスフォームは、VB6の元のセマンティクスに近いものです。たとえば、引数がnullの場合、string.LengthはC#で例外をスローしますが、VBNET.Strings.Len()は0を返します。ただし、null文字列を予期しない場合は、例外が発生したときに例外をスローすると有利な場合があります。そうではありません-少なくともあなたには選択肢があります。