手机
当前位置:查字典教程网 >编程开发 >C#教程 >C#中foreach原理以及模拟的实现
C#中foreach原理以及模拟的实现
摘要:本文实例讲述了C#中foreach原理以及模拟的实现方法,分享给大家供大家参考。具体如下:复制代码代码如下:publicclassPerso...

本文实例讲述了C#中foreach原理以及模拟的实现方法,分享给大家供大家参考。具体如下:

复制代码 代码如下:public class Person:IEnumerable //定义一个person类 并且 实现IEnumerable 接口 (或者不用实现此接口 直接在类 //里面写个GetEnumerator()方法)

{

string[] names = { "小杨", "科比布莱恩特", "凯文杜兰特", "卡门安东尼" }; //在Person类里面定义一个字符串数组,以便用来模仿对象的索引访问

public int Count { get { return names.Length; } } //可以通过对象访问此属性

public string this[int index] //定义一个索引器

{

get { return names[index]; }

}

public IEnumerator GetEnumerator()

{

return new MyClass(names); //实际上通过此方法就是返回一个可以实现循环的类的对象

// 用他的对象来移动索引

}

}

public class MyClass :IEnumerator

{

public MyClass(string[] names) //一个参数的构造函数,用来和要遍历的类的进行关联

{

name = names;

}

private string[] name; //用此字段来存放接收过来的数组

int index = -1;

public object Current //获取当前索引的元素的值

{

get

{

if (index<0) //准备状态是-1,开始循环了在MoveNext中加1

{

return null;

}

else

{

return name[index];

}

}

}

public bool MoveNext()

{

++index; //每调用此方法就将索引往下+1

if (index<name.Length)

{

return true;

}

else

{

return false;

}

}

public void Reset()

{

index=-1;

}

}

在主方法里面:

复制代码 代码如下:class Program

{

static void Main(string[] args)

{

Person p = new Person();

//for (int i = 0; i < p.Count; i++)

//{

// Console.WriteLine(p[i]);

//}

foreach (string item in p)

{

Console.WriteLine(item);

}

//实际执行foreach就相当于执行下面几句话:

Console.WriteLine("==================================================");

IEnumerator p1 = p.GetEnumerator();

while (p1.MoveNext())

{

string str=(string)p1.Current;

Console.WriteLine(str);

}

Console.ReadKey();

}

}

希望本文所述对大家的C#程序设计有所帮助。

【C#中foreach原理以及模拟的实现】相关文章:

C# 语音功能的实现方法

C#仿密保卡功能的简单实现代码

Windows 8 Metro用C#连接SQLite及创建数据库,数据表的增删改查的实现

ref 和out传参的区别分析

C# Winform 让整个窗口都可以拖动

C#中让控件全屏显示的实现代码(WinForm)

C# String Replace高效的实例方法

C#.NET字符串比较中忽略符号的方法

关于c#二叉树的实现

c#图片添加水印的实例代码

精品推荐
分类导航