[英]Creating a collection of base class, then access properties of derived classes in the collection items
[英]Keeping Derived Class Properties in a Collection
我需要幫助,因為我遇到了遇到的問題。 我有一個List , List<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>
。 有沒有將所有Items和ContainerItem存儲在一起並保留其屬性? 提前致謝!
讓我們說你有你的物品清單:
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.