我正在编写一款经典的推箱子游戏。我有一个名为“Warehouse”的类,它代表一个仓库和一个名为“WarehouseItem”的类,它是属于仓库的项目的基类。
我希望以下操作成为可能:
Dim wh as Warehouse
Dim whItem as WarehouseItem
wh.Add(whItem)
wh.Remove(whItem)
whItem.Warehouse = wh
whItem.Warehouse = Nothing
问题是我最终得到了上面的函数,试图递归地互相调用,我不知道如何服从它(以及我犯错误的地方)。这是它的样子:
Class Warehouse
...
Items as List(Of WarehouseItem)
Sub Add(item as WarehouseItem)
Items.Add(item)
wh.Warehouse = wh // Recursive call
End Sub
...
End Class
Class WarehouseItem
...
Private mWarehouse as Warehouse
Property Warehouse As Warehouse
...
Set(wh As Warehouse)
mWarehouse = wh
mWarehouse.Add(me) // Recursive call
End Set
End Property
...
End Class
如果我能更改代码以便执行上述操作,我将不胜感激。