迭代器

可以返回相同类型的值的有序序列的一段代码,可用作方法,运算符或get访问器的代码体

使用 yield return 语句依次返回每个元素,yield break 语句可将终止迭代

迭代器的返回类型必须为 IEnumerable 或 IEnumerator 中的任意一种

对IEnumerator 接口实现GetEnumerator方法:

namespace Test01
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
public class Family : System.Collections.IEnumerable
{
string[] MyFamily ={ "父亲","母亲","弟弟","妹妹"};
public System.Collections.IEnumerator GetEnumerator()
{
for (int i = ; i < MyFamily.Length; i++)
{
yield return MyFamily[i];
}
}
}
private void Form1_Load(object sender, EventArgs e)
{
Family myfamily = new Family();
foreach (string str in myfamily)
{
richTextBox1.Text += str + "\n";
}
}
}
}

分部类

可以将类,结构或接口的定义拆分到两个或多个源文件中

定义分布类需要使用 partial 关键字,分部类的每个部分都必须包含一个partial关键字,并且其声明必须与其他部分位于同一命名空间

在设置分部类时,各个分部必须有相同的可访问性

namespace Test04
{
class Program
{
partial class Mclass
{
public void Hello()
{
Console.WriteLine("用一生下载你");
}
}
partial class Mclass
{
public void Hi()
{
Console.WriteLine("芸烨湘枫");
}
}
static void Main(string[] args)
{
Mclass myclass = new Mclass();
myclass.Hello();
myclass.Hi();
Console.ReadLine();
}
}
}

namespace Test03
{
public class Year : System.Collections.IEnumerable//实现迭代器的类
{
string[] season = { "Spring", "Summer", "Autumn", "Winter" }; public System.Collections.IEnumerator GetEnumerator()
{
for (int i = ; i < season.Length; i++)
{
yield return season[i];
}
}
}
class Program
{
static void Main(string[] args)
{
Year y = new Year();
// 使用迭代器
foreach (string s in y)
{
System.Console.Write(s + " ");
}
Console.ReadLine();
}
}
}

最新文章

  1. @autowired和@resource的区别
  2. 15、ASP.NET MVC入门到精通——MVC-路由
  3. Python爬虫爬取百度贴吧的帖子
  4. 结对编程--基于android平台的黄金点游戏
  5. 使用Access-Control-Allow-Origin解决跨域
  6. Python基本数据类型之list
  7. Jfinal中手动提交/回滚 事物
  8. android图像与图像处理系列(一、Bitmap和BitmapFactory)
  9. 【wikioi】1230 元素查找(巨水题+set/hash)
  10. libcurl安装
  11. android/IOS各平台分享链接/跳转链接配置说明(备用)
  12. php自带验证邮箱 url ip函数
  13. Java JPS找不到正在执行的java进程 jps cannot see running java process
  14. .NET的未来-广州.NET俱乐部学生分会
  15. 【剑指Offer】只出现一次的字符
  16. 我与Vuex的第一次邂逅
  17. 【Excel】读取固定长文本
  18. [jQ]使用jQuery将多条数据插入模态框的方法
  19. python第三十六课——1.可迭代对象
  20. Dubbo学习参考

热门文章

  1. 加载等待loading
  2. JS中的switch case
  3. sql笔试题-1
  4. exsi主机之间使用scp拷贝文件超时问题
  5. Vue总结(二)
  6. [洛谷P3932]浮游大陆的68号岛
  7. caioj 1083 动态规划入门(非常规DP7:零件分组)(LIS)
  8. POJ——T 3255 Roadblocks|| COGS——T 315. [POJ3255] 地砖RoadBlocks || 洛谷—— P2865 [USACO06NOV]路障Roadblocks
  9. 使用安卓手机连接win7的热点
  10. [Python] Boolean Or &quot;Mask&quot; Index Arrays filter with numpy