C#开发 —— 高级应用
2024-08-31 15:32:23
迭代器
可以返回相同类型的值的有序序列的一段代码,可用作方法,运算符或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();
}
}
}
最新文章
- @autowired和@resource的区别
- 15、ASP.NET MVC入门到精通——MVC-路由
- Python爬虫爬取百度贴吧的帖子
- 结对编程--基于android平台的黄金点游戏
- 使用Access-Control-Allow-Origin解决跨域
- Python基本数据类型之list
- Jfinal中手动提交/回滚 事物
- android图像与图像处理系列(一、Bitmap和BitmapFactory)
- 【wikioi】1230 元素查找(巨水题+set/hash)
- libcurl安装
- android/IOS各平台分享链接/跳转链接配置说明(备用)
- php自带验证邮箱 url ip函数
- Java JPS找不到正在执行的java进程 jps cannot see running java process
- .NET的未来-广州.NET俱乐部学生分会
- 【剑指Offer】只出现一次的字符
- 我与Vuex的第一次邂逅
- 【Excel】读取固定长文本
- [jQ]使用jQuery将多条数据插入模态框的方法
- python第三十六课——1.可迭代对象
- Dubbo学习参考
热门文章
- 加载等待loading
- JS中的switch case
- sql笔试题-1
- exsi主机之间使用scp拷贝文件超时问题
- Vue总结(二)
- [洛谷P3932]浮游大陆的68号岛
- caioj 1083 动态规划入门(非常规DP7:零件分组)(LIS)
- POJ——T 3255 Roadblocks|| COGS——T 315. [POJ3255] 地砖RoadBlocks || 洛谷—— P2865 [USACO06NOV]路障Roadblocks
- 使用安卓手机连接win7的热点
- [Python] Boolean Or ";Mask"; Index Arrays filter with numpy