首页 > 解决方案 > 将 VB6.Format 转换为 [variable].ToString() 问题

问题描述

我目前正在将一些遗留软件转换为VB.NET. 我已经完成了一切,除了一些格式。

当我尝试将以下内容更改为 [variable].ToString() 时:

这个:VB6.Format(Mid(inputrec3, 129 + (21 * I), 1), "0") & " "

对此:Mid(inputrec3, 129 + (21 * I), 1).ToString("0") & " "

我收到一个运行时错误,说明:Error when converting 'String' to 'IFormatProvider'.

变量inputrec3I都被声明为对象。我不确定问题是什么。我已经尝试将他们的声明更改为Int,并将Mid方法放入变量中并尝试以这种方式对其进行格式化,但无济于事。

我不确定我还应该尝试什么才能让最后一块工作。我知道我可以保留它,VB6.Format但从长远来看,我更愿意使用更新的东西。

任何帮助将不胜感激。

标签: .netvb.net

解决方案


Mid函数返回一个字符串。string.ToString没有采用格式字符串的重载。Mid调用Format函数时,“遗留”代码似乎隐式地将返回的字符串转换为数字。在 VB.NET 中,您可能需要明确地执行此操作:

CInt(Mid(inputrec3, 129 + (21 * I), 1)).ToString("0")

或者看看是否Mid给你你想要的字符串,而不是把它从一个字符串转换成一个整数然后再转换回来。


推荐阅读