实现枚举接口的IEnumerator接口和IEnumerable 的问题
using System;
using System.Collections;
class Program
{
static void Main(string[] args)
{
ImplementIE myImplementIE = new ImplementIE();
foreach (int i in myImplementIE)
{
Console.Write(i + "\t");
}
IEnumerator myIEnumerator = myImplementIE.GetEnumerator();
while (myIEnumerator.MoveNext())
{
int i = (int)myIEnumerator.Current;
Console.Write(i + "\t");
}
Console.ReadLine();
}
}
public class ImplementIE : IEnumerable
{
int[] myInt = new int[32];
int currentindex = -1;
public ImplementIE()
{
for (int i = 0; i < 32; i++)
{
myInt[i] = i * 10;
}
}
public IEnumerator GetEnumerator()
{
ClsIEnumerator myClsIEnumerator = new ClsIEnumerator(this);
return myClsIEnumerator;
}
class ClsIEnumerator : IEnumerator
{
ImplementIE myImplementIE;
public ClsIEnumerator(ImplementIE myImplementIE)
{
this.myImplementIE = myImplementIE;
}
public object Current
{
get
{
return myImplementIE.myInt[myImplementIE.currentindex];
}
}
public void Reset()
{
myImplementIE.currentindex = -1; }
public bool MoveNext()
{
myImplementIE.currentindex++;
if (myImplementIE.currentindex >= myImplementIE.myInt.Length)
return false;
else
return true;
}
}
}
问题如下:
1:
public IEnumerator GetEnumerator()
{
ClsIEnumerator myClsIEnumerator = new ClsIEnumerator(this);
return myClsIEnumerator;
}
接口IEnumerable定义方法GetEnumerator,此方法返回一个实现IEnumerator接口的类
public IEnumerator GetEnumerator() 在这个方法定义中 IEnumerator 是什么意思 返回值类型?但是它是接口名称
2: ImplementIE myImplementIE;
public ClsIEnumerator(ImplementIE myImplementIE)
{
this.myImplementIE = myImplementIE;
}
这是一个类的嵌套嘛?
3:为什么在这个类中 class ClsIEnumerator : IEnumerator 操作的是public class ImplementIE : IEnumerable类对象
IEnumerator接口通常由实现接口IEnumerable的类取得,接口IEnumerable定义方法GetEnumerator,此方法返回一个实现IEnumerator接口的类,
实现IEnumerator接口的类通常以嵌套类的形式存在于实现接口IEnumerable的类内部。
这句话如何理解?
using System;
using System.Collections;
class Program
{
static void Main(string[] args)
{
ImplementIE myImplementIE = new ImplementIE();
foreach (int i in myImplementIE)
{
Console.Write(i + "\t");
}
IEnumerator myIEnumerator = myImplementIE.GetEnumerator();
while (myIEnumerator.MoveNext())
{
int i = (int)myIEnumerator.Current;
Console.Write(i + "\t");
}
Console.ReadLine();
}
}
public class ImplementIE : IEnumerable
{
int[] myInt = new int[32];
int currentindex = -1;
public ImplementIE()
{
for (int i = 0; i < 32; i++)
{
myInt[i] = i * 10;
}
}
public IEnumerator GetEnumerator()
{
ClsIEnumerator myClsIEnumerator = new ClsIEnumerator(this);
return myClsIEnumerator;
}
class ClsIEnumerator : IEnumerator
{
ImplementIE myImplementIE;
public ClsIEnumerator(ImplementIE myImplementIE)
{
this.myImplementIE = myImplementIE;
}
public object Current
{
get
{
return myImplementIE.myInt[myImplementIE.currentindex];
}
}
public void Reset()
{
myImplementIE.currentindex = -1; }
public bool MoveNext()
{
myImplementIE.currentindex++;
if (myImplementIE.currentindex >= myImplementIE.myInt.Length)
return false;
else
return true;
}
}
}
问题如下:
1:
public IEnumerator GetEnumerator()
{
ClsIEnumerator myClsIEnumerator = new ClsIEnumerator(this);
return myClsIEnumerator;
}
接口IEnumerable定义方法GetEnumerator,此方法返回一个实现IEnumerator接口的类
public IEnumerator GetEnumerator() 在这个方法定义中 IEnumerator 是什么意思 返回值类型?但是它是接口名称
2: ImplementIE myImplementIE;
public ClsIEnumerator(ImplementIE myImplementIE)
{
this.myImplementIE = myImplementIE;
}
这是一个类的嵌套嘛?
3:为什么在这个类中 class ClsIEnumerator : IEnumerator 操作的是public class ImplementIE : IEnumerable类对象
IEnumerator接口通常由实现接口IEnumerable的类取得,接口IEnumerable定义方法GetEnumerator,此方法返回一个实现IEnumerator接口的类,
实现IEnumerator接口的类通常以嵌套类的形式存在于实现接口IEnumerable的类内部。
这句话如何理解?
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货