.net - 将 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'.
变量inputrec3
和I
都被声明为对象。我不确定问题是什么。我已经尝试将他们的声明更改为Int
,并将Mid
方法放入变量中并尝试以这种方式对其进行格式化,但无济于事。
我不确定我还应该尝试什么才能让最后一块工作。我知道我可以保留它,VB6.Format
但从长远来看,我更愿意使用更新的东西。
任何帮助将不胜感激。
解决方案
该Mid
函数返回一个字符串。string.ToString
没有采用格式字符串的重载。Mid
调用Format
函数时,“遗留”代码似乎隐式地将返回的字符串转换为数字。在 VB.NET 中,您可能需要明确地执行此操作:
CInt(Mid(inputrec3, 129 + (21 * I), 1)).ToString("0")
或者看看是否Mid
给你你想要的字符串,而不是把它从一个字符串转换成一个整数然后再转换回来。
推荐阅读
- android - React Native 中的 CameraX 视图 - 无法配置相机
- c++ - 如何在每次循环时更改 Ifstream 的源文件的内容
- visual-studio - 无法将包推送到 azure 工件提要,不断要求提供凭据
- python - 如果我不想进行自回归,如何使用 PyTorch Transformers 执行 seq2seq 任务?
- powershell - Powershell脚本使用相同文件的前32个字符重命名文件夹内的文件
- reactjs - 反应:在 setInterval() 中访问多个状态 useEffect()
- javascript - Javascript:将非常大和非常小的数字转换为固定的人类可读字符串
- .net - VSTO 自定义功能区未显示
- python - 如何在python中用某些条件替换重复的数据框列值
- coinbase-api - Coinbase API - 购买和交易数据之间的关系 ID 问题