【问题标题】:How to store Multiple derived class in same list?如何将多个派生类存储在同一个列表中?
【发布时间】:2022-10-20 18:49:52
【问题描述】:

我有这些课程

public class SubMenuItem : SubMenuVariant
{
    public string SubMenuTitle { get; set; }

    public LinkFieldType Link { get; set; }
   
    public List<SubMenuSubItem> SubItems { get; set; }
}

public class SubMenuHighlightItem : SubMenuVariant
{
    [JsonPropertyName(FieldNames.HighlightTitle)]
    public string HighlightTitle { get; set; }

    [JsonPropertyName(FieldNames.HighlightText)]
    public string HighlightText { get; set; }

    [JsonPropertyName(FieldNames.HighlightText)]
    public Link HighLightLink { get; set; }

}

public class SubMenuVariant
{
}

我目前存储在List&lt;SubMenuVariant&gt; submenu

问题是尽管我无法访问不同菜单具有的各个属性,因为它们被强制转换为没有任何属性的 SubMenu Variant。

是否可以在同一个列表中存储不同的类类型?

【问题讨论】:

    标签: c# asp.net inheritance casting


    【解决方案1】:

    不,您的解决方案已尽善尽美。唯一的另一个更糟糕的选择是List&lt;object&gt;

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-05-04
      • 2014-09-15
      • 1970-01-01
      • 2022-11-04
      • 1970-01-01
      相关资源
      最近更新 更多