C#开发 —— 高级应用
迭代器
可以返回相同类型的值的有序序列的一段代码,可用作方法,运算符或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();
}
}
}
C#开发 —— 高级应用的更多相关文章
- iOS开发——高级技术OC篇&运行时(Runtime)机制
运行时(Runtime)机制 本文将会以笔者个人的小小研究为例总结一下关于iOS开发中运行时的使用和常用方法的介绍,关于跟多运行时相关技术请查看笔者之前写的运行时高级用法及相关语法或者查看响应官方文档 ...
- C#微信公众平台开发—高级群发接口
涉及access_token的获取请参考<C#微信公众平台开发—access_token的获取存储与更新> 一.为了实现高级群发功能,需要解决的问题 1.通过微信接口上传图文消息素材时,J ...
- iOS开发——高级篇——Parse 教程:网络后台基础
本教程已针对Swift, iOS 8.3, Xcode 6.3及最新的Parse SDK(1.7.1版本)更新. 网络后台支持可以为你的App添加许多崭新的功能:不论是数据同步,社交分享,还是云端存储 ...
- iOS开发——高级UI&带你玩转UITableView
带你玩装UITableView 在实际iOS开发中UITableView是使用最多,也是最重要的一个控件,如果你不会用它,那别说什么大神了,菜鸟都不如. 其实关于UItableView事非常简单的,实 ...
- C++/C# 开发高级案例资料一次送!关注加群领取哦!
目前C/C++.C#.JAVA等语言开发的在线教育比较火爆,但小编所见的讲解高级案例的非常少,切合市场需求的较少.而且针对铁路.公路.建筑.市政.制造业等所有工业计算机辅助设计的开发技术和案例几乎没有 ...
- SpringMVC整合Mongodb开发,高级操作
开发环境: 操作系统:windows xpMongodb:2.0.6依 赖 包:Spring3.2.2 + spring-data-mongodb-1.3.0 + Spring-data-1.5 + ...
- iOS开发——高级篇——iOS开发之网络安全密码学
一.非对称加密 - RSA : + 公钥加密,私钥解密: + 私钥加密,公钥解密: + 只能通过因式分解来破解 二.对称加密 - DES - 3DES - AES (高级密码标准,美国国家安全局使用, ...
- iOS开发——高级特性&Runtime运行时特性详解
Runtime运行时特性详解 本文详细整理了 Cocoa 的 Runtime 系统的知识,它使得 Objective-C 如虎添翼,具备了灵活的动态特性,使这门古老的语言焕发生机.主要内容如下: 引言 ...
- iOS开发——高级篇——iOS中如何选择delegate、通知、KVO(以及三者的区别)
在开发IOS应用的时候,我们会经常遇到一个常见的问题:在不过分耦合的前提下,controllers[B]怎么进行通信.在IOS应用不断的出现三种模式来实现这种通信:1委托delegation2通知 ...
- iOS开发——高级篇——iPad开发、iPad开发中的modal
一.iPad简介 1.什么是iPad一款苹果公司于2010年发布的平板电脑定位介于苹果的智能手机iPhone和笔记本电脑产品之间跟iPhone一样,搭载的是iOS操作系统 2.iPhone和iPadi ...
随机推荐
- 对OC中property的一点理解
最近在看即将要加入的项目的代码,看到一个protocol里包含着几个property.之前没有写过类似的代码,看到这里的时候,突然疑惑了一下,发现自己对property的理解好像有点模糊.所以回家后又 ...
- apache(XAMPP)禁止IP访问的httpd-vhosts.conf设置
httpd-vhosts.conf <virtualhost *:80> ServerName 123.123.123.123 ServerAlias 123.123.123.123 ...
- [洛谷P1156][codevs1684]垃圾陷阱
题目大意:一头奶牛掉进了深度为d的坑里,现在有g个垃圾在特定时刻ti扔进来.奶牛可以吃垃圾以获得体力,吃第i个垃圾能获得mi的体力,也可以堆放垃圾以逃生,第i个垃圾高度为hi.当高度≥d时奶牛成功逃生 ...
- python Web抓取(二)selenium模块的使用、对浏览器的按键操作及错误处理
建议以下帖子: 教你在Windows上搭建Python+Selenium环境:https://blog.csdn.net/huilan_same/article/details/52888262 py ...
- Object-C,循环语句for,while,do-while
演示循环语句,for,while,do-while,和C系列的语言,语法基本一致1到10,求和 // // main.m // for-while // // Created by fansunion ...
- Unity 编辑器学习(二)之 全局光照(GI)
光影流年,花影阡陌.光与影交织的岁月教育我们,不会使用光照的程序员不是个好美术. 一.概述 点击 Window > Lighting > Settings 会弹出Lighting窗口,这个 ...
- Spring Tool Suit安装virgo server插件、virgo的下载
virgo-tomcat原先是Spring DM Server,后来转eclipse社区维护 安装教程:http://osgi.com.cn/article/7289514 virgo-tomcat各 ...
- Linux Virtual Server技术
1 LVS简单介绍 Linux VirtualServer是一个高扩展和高可用性server,在一个真正server的集群中构建而成,包括Linux操作系统中的负载均衡. server的架构对于终端用 ...
- iOS 画圆形头像
demo下载地址:http://pan.baidu.com/s/1mgBf6YG _logoImageView.image = [self getEllipseImageWithImage:[UIIm ...
- vue28-2.0-过滤器
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...