【发布时间】:2015-05-08 12:41:09
【问题描述】:
我使用以下代码在我的代码中创建了一个可枚举的类:
public class ItemCollection : IEnumerable<AbstractItem>
{
private List<AbstractItem> Items;
public IEnumerator<AbstractItem> GetEnumerator()
{
return Items.GetEnumerator();
}
System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator()
{
return GetEnumerator();
}
}
效果很好,但是我遇到了一个问题: AbstractItem 有两个继承类,Book 和 Journal,它们都从 AbstractItem 继承对象并有一些自己的(它们都从 AbstractItem 获得“Name”,但只有 Book 有“BGenre”,只有 Journal 有“JTopic”),因为我实现了AbstractItem 的 iEnumerator,我不能使用继承类在 foreach 循环中的对象。我该如何解决?
【问题讨论】:
-
你能提供你想要的代码在foreach循环中使用继承类的对象吗?
-
你可以让你的集合通用: public class ItemCollection
: IEnumerable where T : AbstractItem
标签: c# inheritance ienumerable ienumerator