Vb.net对象的属性,它是一个数组,空引用异常

时间:2018-03-19 08:39:20

标签: arrays vb.net nullreferenceexception

注意:我理解空引用异常是什么,我只是不明白我为什么会这样做。

原件:

我有一个班,SpecialCases。这个类有一个属性DataArray,它是一个数组。

我实例化一个对象,然后我初始化数组,但是当我尝试设置数组的各个元素时,我得到一个空引用异常。

Private Sub btn_AddtoKeyManager_Click(sender As Object, e As EventArgs) Handles btn_AddtoKeyManager.Click
        Dim SC_Additem As New SpecialCases
        SC_Additem.DataArray() = New String(3) {}
        SC_Additem.DataArray() = {cmb_authtypes.SelectedText, txt_URL.Text, txt_Username.Text, txt_password.Text}

    End Sub

事实证明我实际上没有理解有关数组的东西,因为我在初始化时尝试设置值并且工作正常:

Private Sub btn_AddtoKeyManager_Click(sender As Object, e As EventArgs) Handles btn_AddtoKeyManager.Click
        Dim SC_Additem As New SpecialCases
        SC_Additem.DataArray() = New String(3) {cmb_authtypes.SelectedText, txt_URL.Text, txt_Username.Text, txt_password.Text}              
    End Sub

所以之后:

SC_Additem.DataArray() = New String(3) {}

数组初始化为4个元素,所有元素都没有。

然后我尝试将这些元素中的每一个设置为等于某个值。 数组是空的,但我一直处理带有空元素的数组。

我不是想引用一个空元素。我没有做类似的事情:

SC_Additem.DataArray() = New String(3) {}
aVar = Sc_additem.DataArray(2)  

如果我做了类似的事情,那么我会期待一个空引用异常,但我不这样做。

1 个答案:

答案 0 :(得分:0)

也许这取决于你的特殊班级。使用Property代替变量。

相关问题