VB中“Preserve”是什么意思?

 我来答
网海1书生
科技发烧友

2018-01-05 · 擅长软件设计、WEB应用开发、小程序
网海1书生
采纳数:12311 获赞数:26230

向TA提问 私信TA
展开全部
打个比方吧:如果某班原来有53个学生,新转学来了2个同学,那么座位表就要重排了,重排的方法有两种,一种是全部座位清空,重新排位,即:
ReDim a(1 To 55) As Integer

那么这55个座位现在就是空的,你可以重新安排所有同学(包括新来的)的座位。另一种方法就是原来的53个学生的座位不变,新来的同学排在后面,即:
ReDim Preserve a(1 To 55) As Integer

这时候前面53个座位上坐的还是原来的同学,最后两个座位(即a(54)和a(55))则是空的,你可以安排新来的同学坐到这两个座位上去。

如果我这么解释你还是没听明白,那么恭喜你解脱了,从此你不用再学VB了。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
syx54
2018-01-05 · TA获得超过7379个赞
知道大有可为答主
回答量:6567
采纳率:83%
帮助的人:2769万
展开全部
vb提供动态数组,所谓动态数组是指可以根据需要,动态的重新定义数组的规模大小。
一般:
'先定义一个不带下标的数组,然后在程序运行过程中,随时随地用ReDim改变数组的规模
Dim d() AS Integer

Dim i AS Integer
for i = 1 to 10
'第1次,重新定义规模为1,第2次,重新定义规模为2,......第10次,重新定义规模为10

Redim d(i) AS integer
d(i) = i
next i
‘但是,如果你用循环输出这个10个元素,
for i = 1 to 10
print d(i)
next i
会发现只有最后一个元素有数据10,其他都为0

这是因为,用Redim重新定义规模大小时,会将所有元素置0
为了用Redim重新定义规模大小时,保持原来元素的值,就可以使用关键字Preserve
例如:不用Preserve
dim d() as integer
redim d(2) as integer
d(1) = 100
d(2) = 200
redim d(4) as integer
结果原来的d(1)和d(2)全部被设置为0。
例如:使用Preserve
dim d() as integer
redim d(2) as integer
d(1) = 100
d(2) = 200
redim Preserve d(4) as integer
结果原来的d(1)和d(2)保持原来的数据不变。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
创作者DPGTTT9Ftl
2018-05-28 · TA获得超过3672个赞
知道小有建树答主
回答量:53
采纳率:100%
帮助的人:8432
展开全部

VB中“Preserve”是系统关键字 配合redim来使用 重定义数组大小后,仍保留原数组内容。举例说明:

如果某班原来有53个学生,新转学来了2个同学,那么座位表就要重排了,重排的方法有两种,一种是全部座位清空,重新排位,即:

ReDim a(1 To 55) As Integer

那么这55个座位现在就是空的,你可以重新安排所有同学(包括新来的)的座位。另一种方法就是原来的53个学生的座位不变,新来的同学排在后面,即:

ReDim Preserve a(1 To 55) As Integer

这时候前面53个座位上坐的还是原来的同学,最后两个座位(即a(54)和a(55))则是空的,你可以安排新来的同学坐到这两个座位上去。

在使用 Preserve 时,只能通过改变上界来改变数组的大小;改变下界则会导致错误。如果将数组改小,则被删除的元素中的数据就会丢失。如果按地址将数组传递给某个过程,那么不要在该过程内重定义该数组的各维的大小。

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式