【发布时间】:2011-05-31 22:55:46
【问题描述】:
如何将同一基类的子类放入列表中?
我正在使用 ASP.NET MVC3 并创建了一个具有名称、年龄等属性的基本模型类。现在我创建了包含更多细节的子模型(子类)。 为了轻松处理子类,我想要一个包含对象的列表,但是如何处理?
我已经阅读了有关接口或 ICollection 等的信息,但不知道什么是正确的选择以及如何开始 :-(
【问题讨论】:
标签: c# asp.net-mvc-3 subclass
如何将同一基类的子类放入列表中?
我正在使用 ASP.NET MVC3 并创建了一个具有名称、年龄等属性的基本模型类。现在我创建了包含更多细节的子模型(子类)。 为了轻松处理子类,我想要一个包含对象的列表,但是如何处理?
我已经阅读了有关接口或 ICollection 等的信息,但不知道什么是正确的选择以及如何开始 :-(
【问题讨论】:
标签: c# asp.net-mvc-3 subclass
只需创建列表,使其属于基类:
List<BaseClass> myList = new List<BaseClass>();
然后照常添加您的子类对象:
myList.Add(new SubClass1());
myList.Add(new SubClass2());
等等。其中:
public class SubClass1 : BaseClass {}
public class SubClass2 : BaseClass {}
然后,当您将它们取出时,您可以使用is 和as 运算符来确定它们实际上是什么类型并酌情处理它们。
【讨论】:
is和as算作“反射”吗?
我会推荐
List<BaseClass>
为
class Derived1 : BaesClass {}
class Derived2 : BaesClass {}
【讨论】: