如何按名称迭代变量?

时间:2014-07-02 18:56:38

标签: vb.net variables

如果我有以下代码:

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]选项不起作用。 感谢。

3 个答案:

答案 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)。