- 浏览: 256877 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (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 595一、委托概述 委托具有以下特点: 委托类似于 ... -
C#拾遗系列(2):属性
2008-06-11 14:54 7161. 这里主要演示属性的继承和覆盖 2. 把属性理解为方法 ... -
C#拾遗系列(3):构造函数
2008-06-11 15:19 6171. 主要演示构造函数的继承 声明空 ... -
C#拾遗系列(4):索引器
2008-06-11 15:30 7701. 概述 索引器允许类或结构的实例就像数组一样进行索引。索引 ... -
C#拾遗系列(5):泛型委托
2008-06-14 17:25 588using System; using System.Col ... -
C#拾遗系列(6):迭代器
2008-06-14 23:03 5211. 示例: using System; using Sys ... -
C#拾遗系列(7):自定义属性
2008-06-18 14:52 6451 .描述 属性提供功能强大的方法以将声明信息与 C# 代码( ... -
C#拾遗系列(8):异常
2008-06-19 11:02 597using System; using System.Col ... -
C#拾遗系列(9):继承、接口、扩展方法、分部类、类操作、Ref and Out、可空类型
2008-06-19 15:07 1150本文内容: 继承 Equal示例 结构和类 ... -
MSIL(0):简介
2009-03-04 23:06 860Microsoft Intermediate Language ... -
MSIL(1): Hello World
2009-03-09 22:14 7751. 用记事本编写如下代码 .assembly HelloWo ... -
代码段:ASCII to Unicode
2009-04-17 10:44 7891: private string Co ... -
Get countries from system
2009-05-08 16:02 8021: using System; 2: usi ... -
[Tips]:Read value from Resource file in C#
2009-05-18 16:18 10341: //Namespace refer ... -
[tips]: 多线程 ManualResetEvent
2009-05-21 14:23 1340WaitHandle用于实现对共享资源的独占访问,AutoRe ... -
C#拾遗系列(1):委托
2008-06-11 14:43 670一、委托概述 委托具有以下特点: 委托 ... -
C#拾遗系列(2):属性
2008-06-11 14:54 6001. 这里主要演示属性的继承和覆盖 2. 把属性理解为方法 ... -
C#拾遗系列(3):构造函数
2008-06-11 15:19 6321. 主要演示构造函数的继承 ... -
C#拾遗系列(4):索引器
2008-06-11 15:30 5921. 概述 索引器允许类或结构的实例就像数组一样进行索引。索引 ... -
C#拾遗系列(5):泛型委托
2008-06-14 17:25 682using System; using System.Col ...
相关推荐
什么是迭代器模式? 迭代器模式(Iterator):提供一种方法顺序访问一个聚合对象中各个元素,而又不暴露该对象的内部表示。 何时使用迭代器模式? 当需要访问一个聚合对象,而且不管这些对象是什么都需要遍历的时候...
迭代器模式是软件设计模式中的一种行为模式,它在C#等面向对象编程语言中有着广泛的应用。这个模式的主要目标是允许用户遍历一个聚合对象(如数组、集合或列表)的所有元素,而无需了解底层的实现细节。下面将详细...
在C#中,迭代器模式的应用非常广泛,尤其是在处理集合类库时。本教程将深入讲解如何在C#中实现迭代器模式。 首先,让我们理解迭代器模式的基本组成。在C#中,迭代器通常包含以下组件: 1. **聚合对象(Aggregate)...
在Java、C#等面向对象语言中,迭代器模式被广泛使用。 迭代器模式主要包含以下角色: 1. **聚合角色(Aggregate)**:存储一组对象,提供创建迭代器的接口。 2. **迭代器角色(Iterator)**:负责遍历聚合中的元素...
- **显式迭代器**:在Java、C#等语言中,迭代器通常作为接口实现,程序员需要显式地创建迭代器对象并调用其方法进行遍历。 - **隐式迭代器**:在C++中,通过`begin()`和`end()`函数实现,迭代器通常隐含地与容器...
在Java、C#等面向对象编程语言中,迭代器模式是常用的一种行为设计模式,它允许我们遍历集合对象的元素,而无需暴露集合的内部结构。 在标题“第二十讲:迭代模式”中,我们可以理解这是一个教学系列的第20部分,...
在Java、C#等面向对象编程语言中,迭代器模式被广泛应用于集合类库,如ArrayList、LinkedList等。这个"迭代器模式demo"可能是为了演示如何在实际代码中实现或使用迭代器模式。 在迭代器模式中,主要有四个角色: 1....
1. 迭代器模式的介绍 迭代器是针对集合对象而生的,对于集合对象而言,必然涉及到集合元素的添加删除操作,同时也肯定支持遍历集合元素的操作,我们此时可以把遍历操作也放在集合对象中, 但这样的话,集合对象就...
### C#2.0 锐利体验系列课程(2):匿名方法、迭代器 #### 知识点一:匿名方法 ##### 匿名方法的引入 在C#2.0之前,即C#1.0版本中,委托实例化的语法较为繁琐,如需将事件处理器绑定至按钮点击事件,需要定义一个名...
在C#编程语言中,迭代器是一个非常重要的概念,尤其在C# 2.0版本中引入,极大地增强了对集合和数据流的操作能力。迭代器允许开发者定义自己的遍历方式,使得可以按照自定义的顺序访问集合中的元素,而无需暴露集合的...
C# 2_0:使用匿名方法、迭代程序和局部类来创建优雅的代码
### C#2.0 锐利体验系列课程(2):匿名方法、迭代器 #### 知识点一:匿名方法 在C#2.0中引入了一个非常实用且强大的特性——匿名方法(Anonymous Methods)。匿名方法允许开发人员定义一个没有名称的方法,这在很多...
在C#编程语言中,匿名方法和迭代器是两个非常重要的特性,特别是在C#2.0版本中引入,极大地增强了代码的灵活性和可读性。接下来我们将深入探讨这两个概念。 **匿名方法** 匿名方法是在不定义单独的函数的情况下...
在实际编程中,许多编程语言,如Java、C#等,都内置了对迭代器模式的支持,例如Java的`Iterable`接口和`Iterator`接口,使得使用迭代器模式更加便捷。通过这些内置机制,我们可以轻松地实现对集合的遍历,同时保持了...
在Java、Python、C#等面向对象语言中,迭代器模式都有其对应的应用。例如,在Java中,`Iterable`接口和`Iterator`接口就是实现迭代器模式的关键。`Iterable`接口定义了获取迭代器的方法`iterator()`,而`Iterator`...
在C#中,迭代器通过`yield return`语句实现。迭代器可以被用在自定义数据结构中,以便更方便地遍历它们的元素。例如,你可以创建一个迭代器方法,返回一个枚举器,该枚举器逐个返回序列中的元素。这样,即便数据结构...
在Java、C#等面向对象语言中,迭代器模式被广泛应用于容器类,如ArrayList、LinkedList等,使得我们可以方便地遍历集合中的所有元素。 迭代器模式的主要组件包括: 1. **聚合对象(Aggregate)**:包含一组相关或...
开发语言:C# 参考网络上流传的《勇者斗恶龙》游戏源码制作的一个射击类游戏,借用了《勇者斗恶龙》的游戏界面及部分源码。 整个游戏框架已基本完成,源码中采用了一些设计模式,有精美的游戏画面和详尽的代码注释,...