大家好,欢迎来到IT知识分享网。
本实例主要用到了迭代器。迭代器是.net4.5中的一个新特性,它是可以返回相同类型的值的有序序列的一段代码迭代器,可用作方法、运算符或get访问器的代码体。在迭代器的实现代码中,通常使用yield return语句依次返回每个元素,使用yield break语句终止迭代。
迭代器的返回类型,必须为IEnumerable或IEnumerator中的任意一种,下面请看实例功能代码。
程序界面:
程序代码:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace WindowsFormsApplication1
{
public partial class IterationStation : Form
{
public IterationStation()
{
InitializeComponent();
}
public static IList<object> items = new List<object>();//定义一个泛型对象,用于存储对象
/// <summary>
/// 通过迭代器获取泛型中的所有对象值,循环将将控制权交回调用者
/// </summary>
/// <param Node="n">泛型对象</param>
/// <returns>IEnumerable<object></returns>
public IEnumerable<object> GetValues()
{
if (items != null)//如果泛型不为空
{
foreach (object i in items)//遍历泛型中的对象
{
yield return i;//将控制权交回调用者
listViewStation.Items.Add(0.ToString());
}
}
}
/// <summary>
/// 窗体加载事件,初始化泛型对象,使用Add方法添加元素
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void IterationStation_Load(object sender, EventArgs e)
{
items.Add("亚洲");
items.Add("非洲");
items.Add("北美洲");
items.Add("南美洲");
items.Add("南极洲");
items.Add("欧洲");
items.Add("大洋洲");
items.Add(4400);
items.Add(3000);
items.Add(2400);
items.Add(1800);
items.Add(1400);
items.Add(1000);
items.Add(900);
}
/// <summary>
/// 按钮事件,使用foreach语句调用GetValues方法,这个方法的返回类型为枚举类型,否则是不能使用foreach的
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void buttonStation_Click(object sender, EventArgs e)
{
foreach (object i in GetValues())//遍历泛型集合
{
listViewStation.Items.Add(i.ToString());//在列表视图中显示字母
listViewStation.Items.Add(1.ToString());
}
}
/// <summary>
/// 关闭窗体按钮事件,使用Close关闭当前窗体
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void buttonClose_Click(object sender, EventArgs e)
{
Close();//关闭当前窗体
}
}
}
IT知识分享网
结语:
通过在七大洲的面积中间输出相应分隔数字,体会迭代器的调用程序。
喜欢的请关注、收藏、转发!
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://yundeesoft.com/6766.html