声明时初始化整数值 - VB6

4

如何在声明变量时初始化变量值。

我正在使用VB6, 我尝试了

公共i作为整数=0

但是我收到错误消息

预期:语句结束,并且“=”被突出显示

我想将初始值设置为0。

从评论中编辑:

我想创建一个没有数据库帮助的登录表单..

模块:所以我创建了一个user_name(1 to 10)数组和password(1 to 10)数组

form1我想要注册10个用户,每次i的值增加//form// i=1 register_user(i)=uname register_pass(i)=upass i=i+1 //end// 但是每次我进入该表单时,值都会重新设置为1,我该怎么办。


3个回答

12

在VBA和VB6中,您无法初始化变量。您必须使用可执行语句。

但是,每个变量都有一个默认的初始化值。

根据VB6文档

当变量被初始化时,数值变量被初始化为0,变长字符串被初始化为空字符串(""),固定长度的字符串被填充为零。 Variant变量被初始化为空。 用户定义类型变量的每个元素都会被初始化,就像它是一个单独的变量一样。

所以实际上,在您的情况下,

public i as integer = 0

无法工作,但下一个语句可以工作,并且实际上就是这样做的:

public i as integer

这就是你的答案。"当变量被初始化时,数值变量会被初始化为0。" 如果你还没有打开本地窗口,请打开并进入相关子程序。按一次F8键进入它并查看公共变量。它将已经被设置为0。这是整数的默认值。 - Rodger

0
我认为问题在于您试图在声明时实例化公共变量...Dim i As Integer: i = 1可以工作,但不是公共的。您可以选择这样做,或者声明公共变量,然后在子程序的第一行中实例化它。

这是我想做的事情.. 我想创建一个没有数据库帮助的登录表单.. 模块// 所以我创建了一个 user_name(1 to 10) 数组 和 password(1 to 10) 数组 结束模块// 然后在 form1// 我想每次值增加 i,注册最多 10 个用户 //表格// i=1 register_user(i)=uname register_pass(i)=upass i=i+1 //结束// 但每次我进入那个表格时 值再次设置为 1 我该怎么办。 - Mahesh Jaganiya
@M.Jags,你应该在问题中包含这种信息,方法是使用下面的“编辑”链接。我已经复制了你在这里发布的内容,但我认为它可以更好地格式化并且更完整。由于我不完全确定你的意思,所以我基本上保留了原样,希望你能整理一下... - Cindy Meister

0

Vacip根据您的要求将其设置为0进行了回答,但是为了进一步说明...如果您需要一个公共变量以某个非默认值开始,则可以在子程序中第一次调用它时将其设置为该值。

如果您有多个子程序可能会首次调用它,然后将其来回传递,您需要检查以确保它尚未设置。您可以使用公共布尔值来实现此目的。

如果您打开本地变量并逐步执行此操作,您可以看到一种方法。

Public iTesti As Integer 'defaults to 0
Public bTesti As Boolean 'defaults to FALSE

Public Sub testi()
If bTesti = False Then 'btesti is false and iteseti is 0
    iTesti = 1
    bTesti = True
End If
iTesti = 2
testi2
End Sub

Public Sub testi2()
If bTesti = False Then 'btesti is true and itesti is 2
    iTesti = 1
    bTesti = True
End If
iTesti = 3
End Sub

当然,整个布尔测试应该在一个单独的函数中,以避免代码重复。 - user2943111

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接