我看不出这是怎么给我一个nullref异常的

时间:2013-04-13 21:19:03

标签: vb.net nullreferenceexception

为什么下面粘贴的代码会给我一个空引用异常?因为我似乎无法找出原因。

注意:文本框的名称和名称正确无误。当我得到例外时,它们不是空的。

我的代码:(我已突出显示错误行)

txtGuid.BackColor = Color.White
    txtName.BackColor = Color.White
    If txtGuid.Text <> "" And txtName.Text <> "" Then
        Dim name As String = txtName.Text
        Dim guid As String = txtGuid.Text
        **frmWhitelist.names.Add(name)**
        frmWhitelist.guids.Add(guid)
        Me.Close()
    Else
        If txtGuid.Text = "" Then
            txtGuid.BackColor = Color.Red
        End If
        If txtName.Text = "" Then
            txtName.BackColor = Color.Red
        End If
        lblError.Text = "Please check your input in the red-colored fields."
    End If

调用堆栈:

> DayZAdminApp.exe!DayZAdminApp.inptBoxWhitelist.btnOk_Click(Object sender, System.EventArgs e) Line 15 + 0x3d bytes Basic

调试时,txtGuid.texttxtName.text在我的“本地人”标签中都有文字值。

PS:如果这是因为我正在尝试在另一个表单上向公共var添加项目2,我该如何解决这个问题呢?

PPS:frmWhitelist.namesfrmWhitelist.guids被声明为:

Public names, guids As List(Of String)

1 个答案:

答案 0 :(得分:2)

列表为Nothing,因为您尚未初始化它们。

所以你在这里得到一个例外:

frmWhitelist.names

这避免了例外:

Public names As New List(Of String)
Public guids As New List(Of String)

您只是在这里声明:

Public names, guids As List(Of String)

即使宣布它们,它们仍然是Nothing