1

假设我有一个结构

Structure Test
    Public Names as List(Of Strings)
End Structure

我收到错误

A first chance exception of type 'System.NullReferenceException' occurred

所以我进入了代码,每次我向 Names 添加字符串时都会出错

例子:

Dim a as new Test
Dim b = 1
While b < 2
    if b = 1 then
        a.add("Cheese")
    End If
    b += 1
End While

一个错误会抛出a.add("Cheese")

有任何想法吗?

4

3 回答 3

2

在调用该方法List之前,您需要一个新的;.Add此外,您正在对新结构而不是其 List 成员调用 add 方法。

Dim a as new Test
a.Names = New List(Of String)
Dim b = 1
While b < 2
    if b = 1 then
        a.Names.Add("Cheese")
    End If
    b += 1
End While
于 2013-09-20T19:37:45.220 回答
1
Public Names As New List(Of String)

或者

Public Names As List(Of String)
..
Names = New List(Of String)

到目前为止,您所做的只是声明 Names 将是一个字符串列表,如果并且当您开始创建它的实例时……您从未这样做过。String也不是Strings

于 2013-09-20T19:35:17.787 回答
1
Structure Test
    Public Sub New()
       Me.Names = New List(Of String)
    End Sub 
    Public Names as List(Of Strings) 
End Structure

如果所需的行为是当您新建结构时,您可以在构造函数中初始化名称列表,您可以开始将项目添加到列表中。

http://msdn.microsoft.com/en-us/library/2hkbth2a(v=vs.80).aspx/css

于 2013-09-20T21:39:04.420 回答