簡體   English   中英

在集合中保存派生類屬性

[英]Keeping Derived Class Properties in a Collection

我需要幫助,因為我遇到了遇到的問題。 我有一個ListList<Items> ItemList ,我想將一些ContainerItem放入該列表中,但是當我這樣做時,所有的ContainerItems屬性都消失了,它變成了Items的基類

class Items
{
    public Items()
    {

    }
    public string Name { get; set; }
    public int durability { get; set; }
}
class ContainerItems : Item
{
    public ContainersItem()
    {

    }
    public int maxItems { get; set; }
    public List<Items> ContainItems { get; set;}
}

理想情況下,我想將我正在制作的所有項目存儲到Dictionary<string,Items> 有沒有將所有ItemsContainerItem存儲在一起並保留其屬性? 提前致謝!

讓我們說你有你的物品清單:

public List<Items> ContainItems { get; set }

現在你想循環遍歷它們,但是安全的並不是列表的所有成員都不是ContainerItems對象:

foreach(var item in ContainItems)
{
    if(item is ContainerItems)
    {
        var containerItems = (ContainerItems)item;
    }
    else
    {
        //Otherwise deal with it as an Items object
    }
}

您將(1)將列表定義為List<ContainersItem>或(2)每次要使用特定於此類的字段或函數時,在ContainersItem列表的內容

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM