如果我有以下代码:
Private answer1 as boolean = false
Private answer2 as boolean = false
Private answer3 as boolean = false
.
.
Private answer100 as boolean = false
Private Sub check_answers()
For x As Integer = 0 To 100
if answer[x] = true then
' do something
else
' do something else
endif
Next
End Sub
如何按名称迭代所有答案变量?答案[x]选项不起作用。 感谢。
答案 0 :(得分:2)
而不是拥有100个变量。只需一个清单。
Private answers As New List(Of Boolean)
然后你可以检查列表中的单个项目(而不是'()'而不是'[]')
if answers(x) = true then
此外,您可以预先填充100个项目
For x As Integer = 1 To 100
answers.Add(False)
Next
答案 1 :(得分:0)
最简单的方法是创建一个要迭代的值数组:
Dim answer = {answer1, answer2, ...(and so on)} '***
您可以查看http://msdn.microsoft.com/en-us/library/y13tek7e.aspx以获取有关如何在VB.Net中使用数组的更多信息。
除此之外,可以使用一种称为反射的技术来做你想做的事情 - 但我怀疑这可能比你想要的更复杂。通过阅读本文,您可以很好地介绍在VB.net中使用反射:http://msdn.microsoft.com/en-us/magazine/cc163750.aspx。
答案 2 :(得分:0)
已编辑
更正您的代码,它将是:
Private answers(100) as boolean
'The array starts from 0
Private Sub check_answers()
For x As Integer = 0 To 100
if answers(x) then
' do something
else
' do something else
endif
Next
End Sub
数组从0开始,最后一个元素是声明中使用的值(例如,answers(100)
将有101个元素 - 从0到100)。