enumerator(关于 IEnumerator接口的问题看(enumerator.MoveNext)这段)
本文目录
- 关于 IEnumerator接口的问题看(enumerator.MoveNext)这段
- list集合中的enumerator是什么’
- “System.Collections.IEnumerator”: using 语句中使用的类型必须可隐式转换为“System.IDisposab
- 深入概括VB.NET实现IEnumerator接口
关于 IEnumerator接口的问题看(enumerator.MoveNext)这段
Cross类是实现了IEnumerator 接口的.
IEnumerator enumerator = game.Cross();
这里的enumerator实际上是一个Cross类的实例. 这里被称为"里氏替换原则", 即父类型可以在任何子类出现的地方替代子类型; 将断点停留在上面这句代码之后, 利用监视器查看enumerator变量的值的类型, 你就明白了.
Good luck with u;
list集合中的enumerator是什么’
1,list有一个泛型list《E》泛型为list时就可以放进去了。如list《list《entity》》 list=new arrylist《list《entity》》();list《entity》 entitylist=new arrylist《entity》();上面定义的是用来放list的list,下面定义的是放实体的list,要把list加进去只要list.add(entitylist);2,list可以放任何类型的数据,但同一个list里面只能放一种格式的数据,如果是String 的那么全部都为String ,如果是list里面放list那么这个list里面全部都为list格式。
“System.Collections.IEnumerator”: using 语句中使用的类型必须可隐式转换为“System.IDisposab
把using去掉,结尾加分号,去掉大括号,例子:纯原创,好用别忘了点赞哈,^_^
纯原创,个人经验,有问题的求尽情喷,小白一枚,好用也别忘了点赞哈,^_^
修改前:
public DataTable ToTable() { DataTable table = new DataTable(this.Name); using (IEnumerator enumerator = this.Columns.GetEnumerator()) { while (enumerator.MoveNext()) { RecordColumn column; table.Columns.Add(column.Name, column.Type); } } for (int i = 0; i 《 this.Count; i++) { DataRow row = table.NewRow(); foreach (RecordColumn column in this.Columns) { row.ToObject(); } table.Rows.Add(row); } return table; }
修改后:
public DataTable ToTable() { DataTable table = new DataTable(this.Name); IEnumerator enumerator = this.Columns.GetEnumerator(); while (enumerator.MoveNext()) { RecordColumn column = null; table.Columns.Add(column.Name, column.Type); } for (int i = 0; i 《 this.Count; i++) { DataRow row = table.NewRow(); foreach (RecordColumn column in this.Columns) { row.ToObject(); } table.Rows.Add(row); } return table; }
深入概括VB.NET实现IEnumerator接口
VB NET经过长时间的发展 很多用户都很了解VB NET实现IEnumerator接口了 这里我发表一下个人理解 和大家讨论讨论 在面向对象的设计中 经常会用到有类似父子关系的这个对象 比如在我现在的一个项目中 有订单对象 在一个订单下又包含多个产品 这时我就想用 Iterator模式来封装订单下的产品 在dot Net中的IEnumerator接口就是用来实现迭代的 来支持dot Net中的for each的操作
要VB NET实现IEnumerator接口 需在实现以下几个函数来支持IEnumerator接口的操作
Overridable ReadOnly Property Current() As Object
Current用于在迭代过程中得到当前的对象
Public Overridable Function MoveNext() As Boolean
MoveNext用于在迭代过程中将迭代指针指向下一个对象 初始是迭代指针指向集合的开始(在第一个节点之前的位置) 一旦越过集合的结尾 在调用 Reset 之前 对 MoveNext 的后续调用返回 false
Overridable Sub Reset()
将枚举数设置为其初始位置 该位置位于集合中第一个元素之前
只要集合保持不变 枚举数就将保持有效 如果对集合进行了更改(例如添加 修改或删除元素) 则该枚举数将失效且不可恢复 并且下一次对 MoveNext 或 Reset 的调用将引发InvalidOperationException
下需是一个具体的VB NET实现IEnumerator接口的对像
lishixinzhi/Article/program/net/201311/12284
更多文章:
人特别难过时会觉得心痛蚂蚁庄园(人在什么时候最伤心,最难过)
2024年6月8日 08:45
金庸群侠传3无敌版下载(如何在17yy上下载金庸群侠传3无敌版)
2024年7月22日 06:50
武汉教育云空中课堂(武汉教育云空中课堂的直播课如何把二维码和链接发到群里)
2024年8月8日 06:45