能用foreach遍历访问的对象需要实现____接口或声明____方法的类型
来源:互联网 发布:八达岭老虎咬人 知乎 编辑:程序博客网 时间:2024/06/05 16:41
一、答案
能用foreach遍历访问的对象需要实现IEnumerable接口或声明GetEnumerator方法的类型
注:不一定要实现IEnumerable接口,但一定要实现GetEnumrator方法。
二、.Net 1.0实现
public class MyList<T> : IEnumerable
{
public int Count { get { return Items == null ? 0 : Items.Length; } }
public T[] Items { get; set; }
public T this[int index]
{
get { return Items[index]; }
}
//返回一个循环访问集合的枚举数。
public IEnumerator GetEnumerator()
{
return new MyEnumerator<T>() { List = this };
}
}
public class MyEnumerator<T> : IEnumerator
{
private int index = -1;
public MyList<T> List { get; set; }
//将枚举数设置为其初始位置,该位置位于集合中第一个元素之前。
public void Reset()
{
index = -1;
}
//将枚举数推进到集合的下一个元素。
public bool MoveNext()
{
index++;
return (index < List.Count);
}
//获取集合中的当前元素。
public object Current { get { return List[index]; } }
}
//客户端调用,注:1.0中无泛型
MyList<int> list = new MyList<int>() { Items = new int[] { 1, 2, 3, 4 } };
foreach (int item in list)
{
MessageBox.Show(item.ToString());
}
- 能用foreach遍历访问的对象需要实现____接口或声明____方法的类型
- 能用foreach遍历访问的对象需要实现____接口或声明____方法的类型
- 黑马程序员____面向对象的程序设计
- 01____实现多线程的方式
- Java中创建线程的两个方法____解决火车票或售票问题
- OC ____属性 声明
- 数据的表示____浮点
- 99____星期四的目标
- 不会的东西 ____备忘录
- 黑马程序员____基础加强____反射(框架的基石)
- 黑马程序员____基础____java的面向对象
- 基础加强____【反射的作用__实现框架功能】
- 利用 IEnumerable接口 实现自定义类型的集合的foreach遍历
- 大臣的旅费____树的直径
- 见鬼____网上看到的鬼小说
- ____扯淡的考试/感觉可笑
- 站在____的门口(湖北高考作文)
- SQL数据库____锁的概述
- 面向对象讲解(3)
- vs2005 dll
- 常见的HTTP错误讯息中文解读
- listview控件(在listview失去焦点的情况下仍然保持item高亮)
- 使用openssl手工生成cod文件的SHA1 hash码
- 能用foreach遍历访问的对象需要实现____接口或声明____方法的类型
- 如何搭建linux开发服务器
- Rails 行为驱动开发(Behaviour-Driven Development)实践之一
- 模板
- 控制Asp.net的Button控件的提交动作
- const 用法总结
- 【想想想】期末考之前
- jQuery的AJAX支持 【转】
- 蓝牙术语表