在vb.net中使用变量引用对象(Visual Studio 2008)

时间:2010-02-25 21:26:14

标签: vb.net class object variables instance

在对象名称中使用变量时遇到问题。

我有一个名为“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

3 个答案:

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

非常感谢你的帮助!