借助gmStudio,Great Migrations的VB6/ASP/COM分析和重新设计工具,您可以通过更改'字符串机器'使用的'表单形式'来控制这些事物,因为它解释了由其生成的pcode编译器和作者所需的符号。例如,这里是默认的表面形成了莱恩:
<subcode id="Len">
<vbn role="function" narg="1" code="Strings.Len(%1d)"/>
<csh role="function" narg="1" code="VBNET.Strings.Len(%1d)"/>
</subcode>
要定制的莱恩操作发出的C#代码,你可以申请一个覆盖并创建一个自定义的转换配置:
<subcode id="Len">
<csh role="function" narg="1" code="%1d.Length"/>
</subcode>
占位符%1d表示应将原始参数发送到C#代码流的位置。
这是一个非常简单的情况的简化,但这就是主意。
注意:默认表面形式更接近VB6的原始语义。例如,如果参数为null,那么string.Length会在C#中抛出异常,但VBNET.Strings.Len()返回0.即便如此,如果您从不期望空字符串,那么在发生异常时可能会引发异常,或者不 - 至少你有选择。
难道'PaymentsArray.GetUpperBound(0)'是'的UBound函数(PaymentsArray)'相当于现代的? – Gabe 2010-12-22 03:09:13