VB.NET数组下标问题 惊现某博文重大错误

相信,用数组的人对边界这个东西一定很敏感。

今天在调试俄罗斯方块的代码的时候,出现很奇怪的错误,消行之后底板出现问题

后来调试下一看,是数组边界的问题:

    Public Const BD_W_BOXES = 8
    Public Const BD_H_BOXES = 12
    Dim BdState(BD_W_BOXES, BD_H_BOXES) As Boolean

这里的BdState数组括号里的数字其实是下标的最大值,实际上内存中该数组占用9*13=117


同样是在CSDN里有一篇文章写道:

例如:

 
 
  1. //声明一个一维数组具有3个元素,下标从0~2  
  2. Dim arrayl(3)As Integer  
  3. arrayl(0):2  
  4. arrayl(1)=4  
  5. arrayl(2)=8 

实际上下标应该是0~3


如果有争议,欢迎留言,我们进一步探讨

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
vb.NET 数组是一种数据结构,可以存储一组值,并允许通过索引来访问它们。VB.NET 提供了许多用于操作数组的方法,下面列举了一些常用的数组方法: ### 1. `Array.Resize()` 此方法允许调整数组大小。如果传入的是负数,则表示增加数组长度;如果是正数,则表示减少数组长度。 ```vbnet Dim arr As Integer() = New Integer(3) {} arr = Array.Resize(arr, 5) ``` ### 2. `Array.Clear()` 将数组的所有元素设置为零或其他特定值。 ```vbnet Dim arr As Integer() = New Integer(3) {} Array.Clear(arr, 0) ``` ### 3. `Array.Copy()` 复制数组数组的一部分到另一个数组。 ```vbnet Dim src As Integer() = New Integer() {1, 2, 3} Dim dest As Integer() = New Integer(6) {} Array.Copy(src, 0, dest, 0, src.Length) ``` ### 4. `Array.IndexOf()` 查找指定元素在数组中的索引位置。 ```vbnet Dim arr As String() = {"apple", "banana", "cherry"} Dim index As Integer = Array.IndexOf(arr, "banana") ``` ### 5. `Array.LastIndexOf()` 类似于 `IndexOf()`,但是从右向左搜索,返回最后一个匹配项的位置。 ```vbnet Dim arr As String() = {"apple", "banana", "cherry"} Dim index As Integer = Array.LastIndexOf(arr, "banana") ``` ### 6. `For Each Loop` 遍历数组并对其元素执行某些操作。 ```vbnet Dim arr As String() = {"apple", "banana", "cherry"} For Each item In arr Console.WriteLine(item) Next ``` ### 7. `Select()` 和 `ToList()` 用于 LINQ 查询,可以对数组进行过滤、排序等复杂操作。 ```vbnet Imports System.Linq Dim arr As Integer() = New Integer() {1, 3, 2, 4, 5} Dim sortedArr As Integer() = arr.OrderBy(Function(x) x).ToArray() ``` ### 8. `Length` 属性 获数组的长度。 ```vbnet Dim arr As Integer() = New Integer(3) {} Console.WriteLine("Array length is: " & arr.Length) ``` ### 相关问题: 1. 如何在 vb.NET 中初始化动态数组? 2. vb.NET 中如何遍历数组的每个元素并执行操作? 3. vb.NET数组是否支持多重维度?
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值