IEnumerable<T>接口的问题
publicclassStarNode{。。。。。。}publicclassStarNodeCollection:IEnumerable<StarNode>{。。。。}如...
public class StarNode{。。。。。。}
public class StarNodeCollection : IEnumerable<StarNode>
{。。。。}
如果StarNodeCollection没有继承IEnumerable<StarNode>接口,好像这条语句foreach (StarNode node in astar.Path){。。。}也能执行,那这个IEnumerable<StarNode>接口继承,有什么意义吗 展开
public class StarNodeCollection : IEnumerable<StarNode>
{。。。。}
如果StarNodeCollection没有继承IEnumerable<StarNode>接口,好像这条语句foreach (StarNode node in astar.Path){。。。}也能执行,那这个IEnumerable<StarNode>接口继承,有什么意义吗 展开
1个回答
展开全部
在 C# 中,集合类不一定要从 IEnumerable 和 IEnumerator 继承以便与 foreach 兼容。只要此类具有必需的 GetEnumerator、MoveNext、Reset 和 Current()成员,就可 foreach 与一起使用。
继承自 IEnumerable<T> ,IEnumerator<T>可以与其他公共语言运行库兼容语言的 foreach 语句或等效项交互操作。否则只能在C#中使用.
继承自 IEnumerable<T> ,IEnumerator<T>可以与其他公共语言运行库兼容语言的 foreach 语句或等效项交互操作。否则只能在C#中使用.
参考资料: VS 2008 文档
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询