为什么下面粘贴的代码会给我一个空引用异常?因为我似乎无法找出原因。
注意:文本框的名称和名称正确无误。当我得到例外时,它们不是空的。
我的代码:(我已突出显示错误行)
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.text
和txtName.text
在我的“本地人”标签中都有文字值。
PS:如果这是因为我正在尝试在另一个表单上向公共var添加项目2,我该如何解决这个问题呢?
PPS:frmWhitelist.names
和frmWhitelist.guids
被声明为:
Public names, guids As List(Of String)
答案 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
。