如果我有以下代码:
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]选项不起作用。谢谢。
代替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
EDITED
纠正你的代码,它应该是:
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)。
最简单的方法是创建一个要遍历的值数组:
Dim answer = {answer1, answer2, ...(and so on)} '***
关于如何在VB.Net中使用数组的更多信息,您可以查看http://msdn.microsoft.com/en-us/library/y13tek7e.aspx。
除此之外,还可以使用一种称为反射的技术来做您想做的事情——但是我怀疑这可能比您希望的要复杂得多。您可以通过阅读这篇文章获得关于在VB.net中使用反射的良好介绍:http://msdn.microsoft.com/en-us/magazine/cc163750.aspx .