在将项目添加到VB.Net中的列表(类)时遇到问题

我想在文字冒险游戏的每个房间中创建一个物品列表,但是我希望每个物品既具有物品的名称,又具有物品的描述,所以我可以为该项目取决于我需要的项目。

    Dim StartRoom As RoomInfo
    Public Class Items
        Public ItemName As String
        Public ItemDescription As String
    End Class
    Public Structure RoomInfo
        Dim RoomName As String
        Dim BasicDescription As String
        Dim RoomDescription As String
        Dim ValidExists As List(Of String)
        Dim ObjectsInRoom As List(Of String)

        Dim ItemsInRoom As List(Of Items)

    End Structure

    Sub InitializeRooms()

        StartRoom.RoomName = "Start Room"
        StartRoom.RoomDescription = "Test Description"
        StartRoom.BasicDescription = "Test Basic Description"
        Dim TestItem As New Items With {
            .ItemName = "Test Item",.ItemDescription = "This is a Test Item"
        }
        StartRoom.ItemsInRoom.Add(TestItem)


    End Sub

我创建了一个列表ItemsInRoom,它是一个Items列表,一个Class。这样,每个房间都可以拥有唯一的物品清单,可以在玩家拿起物品或与其互动时更改。这就是Initialize Rooms子程序的目的-我可以在游戏加载时运行它,并为游戏中的每个房间设置所有信息。 无论如何,当我尝试将TestItem添加到列表中时,会收到“对象引用未设置为对象的实例”。错误。我非常愚蠢,这可能是本书中最明显的错误,但是我找不到这种特殊情况的解决方案。 感谢您的帮助。

zgyifei 回答:在将项目添加到VB.Net中的列表(类)时遇到问题

这是您的类型声明应为的样子:

Public Class Item
    Public Property Name As String
    Public Property Description As String
End Class

Public Class Room
    Public Property Name As String
    Public Property BasicDescription As String
    Public Property RoomDescription As String
    Public ReadOnly Property ValidExists As New List(Of String)
    Public ReadOnly Property Objects As New List(Of String)
    Public ReadOnly Property Items As New List(Of Item)
End Class

类型和成员的更好名称,类而不是结构,属性而不是字段,在声明它们的位置创建的集合,集合属性为只读。

本文链接:https://www.f2er.com/3157487.html

大家都在问