在对象名称中使用变量时遇到问题。
我有一个名为“Tank”的Public类 在该类中,有一个称为整数类型“方向”的公共属性。
我一直收到错误: “坦克是一种类型,不能用作表达” 我在这里做错了什么?
Public Class mainroutines()
' Create Instances of tank
Private Tank1 As New Tank()
Private Tank2 As New Tank()
'Loop trough objects and set the property value
dim i as integer
For i = 1 to 2
Tank(i).direction = 1
next i
End class
答案 0 :(得分:2)
你没有坦克阵列:
Public Class mainroutines()
' Create Instances of tank
Private Tank1 As New Tank()
Private Tank2 As New Tank()
'Loop trough objects and set the property value
Dim tanks() As Tank
tanks(0) = Tank1
tanks(1) = Tank2
For i As Integer = 1 To 2
tanks(i).direction = 1
next
End class
如果您使用的是Visual Studio 2008,则可以使用:
Private Tank1 As New Tank() With { .Direction = 1}
Private Tank2 As New Tank() With { .Direction = 1}
所以你根本不需要For循环。
答案 1 :(得分:1)
好吧,Tank(i)
不等同于Tank1
。您需要制作一个坦克列表,将实例添加到其中,然后以这种方式访问它们。
Public Class mainroutines()
' Create Instances of tank '
Dim allTanks As List(Of Tank) = New List(Of Tank)
allTanks.Add(New Tank())
allTanks.Add(New Tank())
'Loop through objects and set the property value '
dim i as integer
For i = 1 to 2
allTanks(i).direction = 1
next i
答案 2 :(得分:0)
@ Jball
它需要一个小的修正,你的例子工作得很好! 正是我需要的!
Dim alltanks As List(Of Tank) = New List(Of Tank)
非常感谢你的帮助!