抱歉,如果这是不稳定的,因为我是编程的新手。我一直在寻找这方面的帮助,但我不确定我究竟缺少什么并寻找。
我编辑了这个以尝试解释最终目标。
该队员有两支军队,每支军队有五支队伍,每支队伍有五名士兵。 每个士兵都有一个名称,级别,健康状况和xp,需要从数据库加载到正确的类中。
目前我将它设置为嵌套类Army#.Squad#.Soldier#.Property
从数据库中我可以调用包含哪个军队的单元格>小队>士兵数据库行涉及。
我想要做的是使用循环从数据库填充,因为有数百种可能的组合。
V1 = Cell1
V2 = Cell2
V2 = Cell3
V4 = Cell4
V1.V2.V3.Health = V4
答案 0 :(得分:0)
我认为你混淆了实例和类。您可能不需要5个Squad Classes ,但可能只需要5个实例。考虑:
Friend Class Army
' an army is made up of 5 squads, so we need
' 5 runtime instances of the Squad Class (lists are like arrays)
Private squadList As New List(of Squad)
' identifier is something the code uses to
' know which to add. Maybe it is the SquadID from teh DB or name
' hard to tell
Public Sub AddSquad(Identifier As Integer)
' create a new Squad instance
Dim sq As New Squad(maybe some ID)
' add new squad to the LIST we are using
squadList.Add(sq)
End Sub
Public Sub RemoveSquad(name As String)
' a squad died in battle; find them and remove them
squadList.Remove(indexOfSquadnamed)
' now there are only 4
End Sub
End Class
" smarts"建造Squad将在Squad Class中。您可能有一种方法可以根据ID从DB加载小队,另一种方法可以在转弯结束时将小队保存到数据库等。您可以在军队的循环中调用此方法,以便保存或加载目前每个小队都有。
即使SquadB与SquadA不同,它也可能由属性处理和/或由List(of Soldier)
组成。{/ p>
这是一个抽象的例子。陆军可能永远不会从列表中移除一个小队,但将其标记为Active = False
,以便在转弯结束时,移除死亡小队,添加新的小队。
答案 1 :(得分:0)
索引属性将最接近您想要的属性。
Class Army
Private _Squads(5) As Squad
Property Squad( ByVal index as Integer ) As Squad
Get
Return _Squads( index )
End Get
Set( Byval this as Squad )
_Squads( index ) = this
End Set
End Property
'More
End Class
Class Squad
Private _Units( 5 ) As Unit
Property Unit( ByVal index as Integer ) As Unit
'Same, but use _Units
End Property
End Class
Class Unit
End Class
然后您可以执行以下操作
Dim x As New Army
x.Squads( 1 ) = New Squad( )
x.Squads( 1 ).Units( 1 ) = New Unit
单位也可以是一个界面,或者如果你有剑士,龙,士兵,机器人或其他单位类型的东西,它可以只是你所有单位继承的类。
我还没有对它进行过测试,但它应该让你了解一种方法。