- 浏览: 247178 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (293)
- web (1)
- [随笔分类]项目管理 (30)
- [随笔分类]WCF (14)
- 未分类 (1)
- [随笔分类]Linq (4)
- [随笔分类]C#基础 (24)
- 项目 (1)
- [网站分类]3.非技术区(技术之外的文章,但不要涉及任何政治内容) (8)
- [网站分类]1.首页原创精华.NET区(包含架构设计、设计模式)(对首页文章的要求:原创、高质量、经过认真思考并精心写作) (9)
- [随笔分类]Ubuntu (4)
- ASP.Net (1)
- [网站分类]2..NET新手区(用于发表不合适发表在首页的.NET技术文章,包括小经验、小技巧) (30)
- [随笔分类]ASP.NET MVC (20)
- [随笔分类]ASP.NET (3)
- [随笔分类]程序员厨房 (4)
- [随笔分类]英语学习 (28)
- [网站分类]4.其他技术区 (1)
- [随笔分类]Silverlight (12)
- [随笔分类]CodeSmith (8)
- [随笔分类]其他 (4)
- [随笔分类]Ruby (4)
- [发布至博客园首页] (34)
- [网站分类]其他技术区 (3)
- [随笔分类]Ruby on Rails (2)
- [网站分类].NET新手区 (33)
- [随笔分类]TDD (1)
- [随笔分类]不谈技术 (2)
- [网站分类]非技术区 (7)
最新评论
-
yicone:
You make a mistake when paste t ...
WCF步步为营(一):简单示例 -
jinweijie:
你好,这个实现不错,但是在用了scriptmanager以后就 ...
在服务器端保存ViewState
1. 示例:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Collections;
namespace NetTest
{
public class TestIteration
{
public void Test()
{
SevenColor colorIteration = new SevenColor();
foreach (string p in colorIteration)
{
Console.Out.WriteLine(p);
}
Console.Out.WriteLine("-------------Desc-------------------");
foreach (string c in colorIteration.DescColorIteration(1, 5))
{
Console.Out.WriteLine(c);
}
Console.Out.WriteLine("--------------multi yield---------");
foreach (string c in colorIteration.GetMutipleYied())
{
Console.Out.WriteLine(c);
}
}
}
public class SevenColor : IEnumerable
{
string[] mColor={"red","orange","yellow","green","cyan","blue","purple"};
#region IEnumerable Members
/*
迭代器代码使用 yield return 语句依次返回每个元素。yield break 将终止迭代。
可以在类中实现多个迭代器。每个迭代器都必须像任何类成员一样有唯一的名称,
并且可以在 foreach 语句中被客户端代码调用,如下所示:foreach(int x in SampleClass.Iterator2){}
*/
public IEnumerator GetEnumerator()
{
for (int i = 0; i < mColor.Length; i++)
{
yield return mColor[i];
}
}
#endregion
//注意,这里返回的是IEnumerable
public System.Collections.IEnumerable DescColorIteration(int start, int end)
{
for (int i = 0; i <=end; i++)
{
yield return mColor[end-i];
}
}
//在 foreach 循环的每次后续迭代(或对 IEnumerator.MoveNext 的直接调用)中,
//下一个迭代器代码体将从前一个 yield 语句之后开始,并继续下一个语句直至到达迭代器体的结尾或遇到 yield break 语句
public IEnumerable GetMutipleYied()
{
yield return "hello";
yield return "I am";
yield return "Jack";
yield return "wang";
}
}
}
2. 输出
发表评论
-
C#拾遗系列(1):委托
2008-06-11 14:43 558一、委托概述 委托具有以下特点: 委托类似于 ... -
C#拾遗系列(2):属性
2008-06-11 14:54 6801. 这里主要演示属性的继承和覆盖 2. 把属性理解为方法 ... -
C#拾遗系列(3):构造函数
2008-06-11 15:19 5841. 主要演示构造函数的继承 声明空 ... -
C#拾遗系列(4):索引器
2008-06-11 15:30 7341. 概述 索引器允许类或结构的实例就像数组一样进行索引。索引 ... -
C#拾遗系列(5):泛型委托
2008-06-14 17:25 564using System; using System.Col ... -
C#拾遗系列(6):迭代器
2008-06-14 23:03 4971. 示例: using System; using Sys ... -
C#拾遗系列(7):自定义属性
2008-06-18 14:52 6241 .描述 属性提供功能强大的方法以将声明信息与 C# 代码( ... -
C#拾遗系列(8):异常
2008-06-19 11:02 572using System; using System.Col ... -
C#拾遗系列(9):继承、接口、扩展方法、分部类、类操作、Ref and Out、可空类型
2008-06-19 15:07 1113本文内容: 继承 Equal示例 结构和类 ... -
MSIL(0):简介
2009-03-04 23:06 821Microsoft Intermediate Language ... -
MSIL(1): Hello World
2009-03-09 22:14 7371. 用记事本编写如下代码 .assembly HelloWo ... -
代码段:ASCII to Unicode
2009-04-17 10:44 7461: private string Co ... -
Get countries from system
2009-05-08 16:02 7621: using System; 2: usi ... -
[Tips]:Read value from Resource file in C#
2009-05-18 16:18 9941: //Namespace refer ... -
[tips]: 多线程 ManualResetEvent
2009-05-21 14:23 1306WaitHandle用于实现对共享资源的独占访问,AutoRe ... -
C#拾遗系列(1):委托
2008-06-11 14:43 627一、委托概述 委托具有以下特点: 委托 ... -
C#拾遗系列(2):属性
2008-06-11 14:54 5611. 这里主要演示属性的继承和覆盖 2. 把属性理解为方法 ... -
C#拾遗系列(3):构造函数
2008-06-11 15:19 6071. 主要演示构造函数的继承 ... -
C#拾遗系列(4):索引器
2008-06-11 15:30 5611. 概述 索引器允许类或结构的实例就像数组一样进行索引。索引 ... -
C#拾遗系列(5):泛型委托
2008-06-14 17:25 649using System; using System.Col ...
相关推荐
C#强化系列文章三:实验分析C#中三种计时器使用异同点.doc C#强化系列文章四:匿名方法的使用.doc C#强化系列文章五:动态代码的使用(反射和动态生成类).doc C#强化系列文章六:应用程序域(AppDomain)浅析.doc C#...
C#设计模式基础示例之迭代器模式,很基础的教程,初学者使用
[C#基础知识系列]专题十二:迭代器源码
C# 2_0:使用匿名方法、迭代程序和局部类来创建优雅的代码
C#2.0 锐利体验系列课程(2):匿名方法、迭代器 教程连载,都是体验课程
提供一种方法顺序访问一个聚合对象中各个元素,而又不需暴露该对象的内部表示。
开发语言:C# 参考网络上流传的《勇者斗恶龙》游戏源码制作的一个射击类游戏,借用了《勇者斗恶龙》的游戏界面及部分源码。 整个游戏框架已基本完成,源码中采用了一些设计模式,有精美的游戏画面和详尽的代码注释,...
C#面向对象设计模式 (行为型模式) Iterator 迭代器模式 视频讲座下载
C#2.0 锐利体验系列课程(2):匿名方法、迭代器。官方讲解,清晰直接。收藏多年,分享给大家。C#2.0经典
如题,C#的Demo项目:RabbitMQ封装和使用, 引用了RabbitMQ.Client 版本:3.6.9 RabbitMQ .NET客户端操作类库, 并简单展示了3种Exchange的使用
C#2.0 锐利体验系列课程(2):匿名方法、迭代器.pdf <br>课件。。。
20050824pm--C#2.0 锐利体验系列课程(2):匿名方法、迭代器.pdf
编程学C#(1):VS2010 C# Access数据库管理程序,1. 基于VS2010 C# 的的Access数据库管理设计; 2. 数据集的创建; 3. .NET组件,dataGridview 控件的使用; 4. 数据库的插入、删除、查询操作设计。
主要为大家详细介绍了C#使用yield关键字构建迭代器的相关资料,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
C#编程系列:电话触摸屏拨打系统,学习好助手。
什么是迭代器模式? 迭代器模式(Iterator):提供一种方法顺序访问一个聚合对象中各个元素,而又不暴露该对象的内部表示。 何时使用迭代器模式? 当需要访问一个聚合对象,而且不管这些对象是什么都需要遍历的时候...
C#2_0迭代器 这个都是本人收藏了3年的资源 现放出 都是总结了很多系统 软件项目实施过程中的经验的 慢慢积累的
大家好,这是 [C#.NET 拾遗补漏] 系列的第 07 篇文章。 在 C# 中,大多数方法都是通过 return 语句立即把程序的控制权交回给调用者,同时也会把方法内的本地资源释放掉。而包含 yield 语句的方法则允许在依次返回多...
迭代器、分部类、索引器. 1.索引器的概述和声明 2.类在索引器的应用, 3. 索引器在接口中使用