vb下标越界是什么意思?怎么避免?

如题所述

下标越界是指只能在定义的范围内访问数组元素和集合成员。

一、产生下标越界的原因

1、下标可能比下标范围大或小,或是在应用程序中这一边的数组没有指定范围。检查数组的声明以确认其上界和下界。若使用的是重新指定范围的数组,应使用 UBound 和 LBound 函数来决定数组访问。如果索引指定为变量,应检查变量名的拼写。

声明数组时没有指定元素的数目。例如,下列的代码就会导致此错误:

Dim MyArray() As Integer MyArray(8) = 234 ' 导致错误 9。

Visual Basic 并不会将没有指定范围的数组自动设为 0 – 10。相反必须使用 Dim 或 ReDim 来指定数组中元素的数目。

2、引用了不存在的集合成员。

试着使用 For Each...Next 结构代替指定元素下标。使用速写形式的下标,结果指定了错误的元素。

例如:

当在集合上使用 感叹号(!) 运算子时,叹号自动指定了一个键,集合中如果 keyname 表示一个错误键,错误就会产生。若要改进此错误,在集合对象中使用正确的键名称或索引。

二、VB语言的特点

1、VB 的中心思想就是要便于程序员使用,无论是新手或者专家。VB使用了可以简单建立应用程序的GUI 系统,但是又可以开发相当复杂的程序。VB 的程序是一种基于窗体的可视化组件安排的联合,并且增加代码来指定组件的属性和方法。

2、窗体控件的增加和改变可以用拖放技术实现。一个排列满控件的工具箱用来显示可用控件(比如文本框或者按钮)。每个控件都有自己的属性和事件。默认的属性值会在控件创建的时候提供,但是程序员也可以进行更改。很多的属性值可以在运行时候随着用户的动作和修改进行改动,这样就形成了一个动态的程序。

3、VB 的程序可以包含一个或多个窗体,或者是一个主窗体和多个子窗体,类似于操作系统的样子。有很少功能的对话框窗口(比如没有最大化和最小化按钮的窗体)可以用来提供弹出功能。

4、VB 的组件既可以拥有用户界面,也可以没有。这样一来服务器端程序就可以处理增加的模块。

5、VB 使用参数计算的方法来进行垃圾收集,这个方法中包含有大量的对象,提供基本的面向对象支持。因为越来越多组件的出现,程序员可以选用自己需要的扩展库。

6、VB 使得大量的外界控件有了自己的生存空间。大量的第三方控件针对 VB 提供。VB 也提供了建立、使用和重用这些控件的方法,但是由于语言问题,从一个应用程序创建另外一个并不简单。

三、VB语言缺点

1、Visual Basic 语言具有不支持继承、无原生支持多线程、异常处理不完善等三项明显缺点,使其有所局限性(此些缺点皆已在 vb .net 获得改进)。

2、VB 5.0 和 VB 6.0 都是基于对象的编程语言,但是不包含继承特性。VB 中提供了特殊的类的功能,但是还是不能满足程序员的需求。

3、Visual Basic 对于多线程无原生支持,只能通过Windows API的调用实现,且极其的不稳定。因为在API创建的线程中,并没有自动初始化运行时库,导致部分的函数无法使用。

4、Visual Basic 中内置异常处理,即使未写异常处理代码,一旦用户出错也会弹出一个明确写出出错原因对话框,接着程序终止。


扩展资料:

VB语言发展历程

1、1991年4月,微软公司推出了 Visual Basic 1.0Windows版本,这个连接编程语言和用户界面的进步被称为Tripod,最初的设计是由阿兰·库珀(Alan Cooper)完成的。在当时,它是第一个“可视”的编程软件。 

2、1992年9月,Visual Basic 1.0 DOS版本发布。11月,由于Visual Basic 1.0的功能过于简单,微软推出了新版本Visual Basic 2.0。这个版本最大的改进就是加入了对象型变量对语言的改进和扩充。

3、1993年,微软公司推出Visual Basic 3.0,分为标准版和专业版。其中包含一个数据引擎,可以直接读取Access数据库。增加了最新的ODBC2.0的支持,Jet数据引擎的支持和新版本OLE的支持。

4、2002年,微软将.NET Framework与 Visual Basic 结合而成为 Visual Basic .NET (vb .net),重新打造 VB,新增许多特性及语法。

5、2005年11月7日,Visual Basic 2005 (v8.0)问世,同时间推出Visual Basic 2005的免费简化版本Visual Basic 2005 Express Edition给Visual Basic初学者及学生使用。

6、2008年3月,微软宣布将不会再对非.NET版本的VB进行支持。

参考资料来源:百度百科-下标越界

参考资料来源:百度百科-Visual Basic

温馨提示:答案为网友推荐,仅供参考
相似回答