注册 登录
编程论坛 VB.NET论坛

在赋值前被使用。可能会在运行时导致空引用异常

vbcaonia 发布于 2023-03-04 21:33, 840 次点击
为啥getmask(mask)中显示:变量“mask”在赋值前被使用。可能会在运行时导致空引用异常

怎样修改谢谢!

Option Explicit On

Sub getmask(ByVal mk() As Long)
        Dim i As Long
        ReDim mk(0 To 30)
        mk(1) = 1
        For i = 2 To 30
            mk(i) = mk(i - 1) * 2
        Next

    End Sub

 Private Sub Button12_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button12.Click
        Dim mask() As Long
        Dim add As Long
        add = 300
        getmask(mask)
        Dim sjStr(add - 1)
        Dim sj(1, add - 1)




[此贴子已经被作者于2023-3-4 21:35编辑过]

2 回复
#2
apull2023-03-05 10:10
要保留函数中对形参的更改需要用byref
Sub getmask(ByRef mk() As Long)

Dim mask() As Long 这个只是声明了数组,并没有初始化大小。根据你你的代码可以写成 Dim mask(0) As Long
#3
vbcaonia2023-03-05 11:11
回复 2楼 apull
问题完美解决,谢谢版主!
1