vb.net - 替换 vb.net 中的 UBound
问题描述
我正在将现有库移植到 .net 标准 2.0,我想我已经达到了我的最后一个错误(希望如此)我需要更改 UBound 从我正在阅读的意思是 Array.Length?
If aryTemp Is Nothing Then
ReDim aryTemp(0)
Else
ReDim Preserve aryTemp(UBound(aryTemp) + 1)
End If
aryTemp(UBound(aryTemp)) = _TransactionItems(i)
我的代码会是 ReDim Preserve aryTemp((aryTemp).Length + 1)
吗?由于我无法将 UBound 移植到 .net 标准,我将如何更改它?
解决方案
这是您的 VB6 导入代码的 VB.NET 等效项:
If aryTemp Is Nothing Then
Redim aryTemp(0)
Else
ReDim Preserve aryTemp(aryTemp.Length)
End If
aryTemp(aryTemp.Length -1 ) = _TransactionItems(i)
此代码期望,该数组的 LBound 始终为 0。它可能是 VB6 中的其他内容。
我不确定 Redim Preserve 将如何与 .NET Standard 一起使用。
如评论中所述,将此数组更改List(Of Integer)
为更好的主意。Redim Preserve
现在应该是非常非常罕见的一段代码,仅适用于非常特殊的场景。
推荐阅读
- r - 在 R 中执行日期的行间比较
- python - Python:用“\\”替换“\”
- arrays - Postman - 数组中值的动态变量
- python - 处理 python 命令行参数,多个可选参数
- django-rest-framework - 使用 dj-rest-auth 进行电子邮件验证注册
- python - 我正在尝试在网站上提取表值,但出现一个空列表
- amazon-web-services - 无法使用 Elastic Beanstalk 访问 EC2 实例中的 RDS 环境变量
- asp.net-core - ASP.NET Core 重试整个服务器端请求管道
- ios - Flutter:询问位置权限会暂停所有应用程序执行,如何让它异步运行
- ios - 无法在 xcframework 中导入框架