我只是想知道是否有人可以指出我的代码出错了。我正在使用名为Nouns的ArrayList,并且有代码将从ArrayList
中挑选的单词添加到名为ArrayList
的另一个NewArray()
。
问题是,当从label_click事件调用Sub时,它不会将存储在NewArray中的单词保存在代码NewArray.Add(WordChosen)
中。我通过使用断点和步进来调试它。
这部分的代码在这里:
Sub GetNoun()
Dim Nouns As ArrayList = New ArrayList(16)
Nouns.Add("France")
Nouns.Add("Bird")
Nouns.Add("Doctor")
Nouns.Add("City")
...
Dim lblArray As Label() = {lblOne, lblTwo, lblThree, lblFour}
Start:
Dim WordChosen As String
WordChosen = Nouns(Random.Next(16))
If NewArray.Contains(WordChosen) Then
GoTo Start
Else
Dim LabelChosen As Label
LabelChosen = lblArray(Random.Next(4))
LabelChosen.Text = WordChosen
Nouns.Remove(WordChosen)
NewArray.Add(WordChosen)
End If
End Sub
如何在动态ArrayList中保留单词?我希望这是有道理的,不是重复的,但我坚持不懈。
答案 0 :(得分:2)
您的列表是本地变量。
每次调用该函数时,都会得到一个新的变量。
您应该将其移动到类中以创建单个字段,并在构造函数中初始化它。