YieldReturn语法解析
/*
*
* 学习Yield Return 语法
* 使用两个方法,显示1 - 100之间的全部偶数
*
*
*/
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace YieldReturn语法解析
{
class Program
{
/// <summary>
/// 结论:Yield Return关键字的作用就是退出当前函数,
/// 并且会保存当前函数执行到什么地方,也就上下文。
/// 你发现没下次执行这个函数上次跑来的代码是不会重复执行的,
/// </summary>
static private List<int> _numArray;
Program()
{
_numArray = new List<int>();//用来保存1-100的整数
for (int i = 1; i <= 100; i++)
{
_numArray.Add(i);//将100个整数保存到list集合中
}
}
static IEnumerable<int> GetAllEvenNumber()
{
List<int> result = new List<int>();
foreach (int item in _numArray)
{
if(item % 2 == 0)//判断是不是偶数,若是则存到result集合中
{
//result.Add(item);//返回当前偶数
yield return item;//返回当前偶数 不用循环遍历添加偶数到集合中
}
}
//return result;
yield break;
}
static public void TestMethod()
{
foreach (var item in GetAllEvenNumber())
{
Console.WriteLine("输出偶数:" + item +" "+ DateTime.Now); //输出偶数测试
}
Console.ReadLine();
}
static void Main(string[] args)
{
new Program();
TestMethod();
//返回偶数集合变量 可能有人会觉得奇怪返回类型不是List<int>这样可以吗
//这个就要回到我们的里氏替换原则了,子类是可以替换父类的,也就是当父类用
//比如我这个方法是想得到IEnumerable<int> 类型变量,但是我给了List<int>类型变量
//注意List<int> 是继承 IEnumerable<int> 的,什么意思当我们把子类当父类使用,
//那么大才小用,因为子类很多都是继承父亲,你自身增加很多字段或者方法,这样就不能用了。
return result;
//yield break;
}
}
}
最后直接代码测试跑一遍就很清楚了!!!!!!!
YieldReturn语法解析的更多相关文章
- With语句以及@contextmanager的语法解析
with 语句以及@contextmanager的语法解析 with语句可以通过很简单的方式来替try/finally语句. with语句中EXPR部分必须是一个包含__enter__()和__e ...
- MySQL- -Join语法解析与性能分析
Mysql Join语法解析与性能分析 一.Join语法概述 join 用于多表中字段之间的联系,语法如下: ... FROM table1 INNER|LEFT|RIGHT JOIN table2 ...
- 更改AngularJS的语法解析符号
// 更改AngularJS的语法解析符号 app.config(function ($interpolateProvider) { $interpolateProvider.startSymbol( ...
- 转换器4:手写PHP转Python编译器,语法解析部分
写完词法部分,又有很多杂事,周末终于有空来实现伟大的语法解析部分了. 撸完代码之后发现,程序太短了,不算上状态机,才186行(含注释),关键代码不到100行.运行调试过后,发现还行.居然可以解析One ...
- 在.NET Core中使用Irony实现自己的查询语言语法解析器
在之前<在ASP.NET Core中使用Apworks快速开发数据服务>一文的评论部分,.NET大神张善友为我提了个建议,可以使用Compile As a Service的Roslyn为语 ...
- Generator函数语法解析
转载请注明出处: Generator函数语法解析 Generator函数是ES6提供的一种异步编程解决方案,语法与传统函数完全不同.以下会介绍一下Generator函数. 写下这篇文章的目的其实很简单 ...
- JSP编译成Servlet(一)语法树的生成——语法解析
一般来说,语句按一定规则进行推导后会形成一个语法树,这种树状结构有利于对语句结构层次的描述.同样Jasper对JSP语法解析后也会生成一棵树,这棵树各个节点包含了不同的信息,但对于JSP来说解析后的语 ...
- 用java实现编译器-算术表达式及其语法解析器的实现
大家在参考本节时,请先阅读以下博文,进行预热: http://blog.csdn.net/tyler_download/article/details/50708807 本节代码下载地址: http: ...
- 用java实现一个简易编译器-语法解析
语法和解析树: 举个例子看看,语法解析的过程.句子:“我看到刘德华唱歌”.在计算机里,怎么用程序解析它呢.从语法上看,句子的组成是由主语,动词,和谓语从句组成,主语是“我”,动词是“看见”, 谓语从句 ...
- 使用 java 实现一个简单的 markdown 语法解析器
1. 什么是 markdown Markdown 是一种轻量级的「标记语言」,它的优点很多,目前也被越来越多的写作爱好者,撰稿者广泛使用.看到这里请不要被「标记」.「语言」所迷惑,Markdown 的 ...
随机推荐
- vscode注释插件
VSCODE注释插件:koro1FileHeader 按koroFileHeader 插件,配置默认注释 1.在扩展中搜索koroFileHeader,安装 2.安装完成后,在设置中搜索,koro1F ...
- ubuntu 中将DSLR相机用作网络摄像头
一.安装所需软件 sudo apt-get install gphoto2 v4l2loopback-utils v4l2loopback-dkms ffmpeg 二.Video4Liunx 配置 1 ...
- SAP 登录文件路径
链接文件地址C:\Users\Administrator\AppData\Roaming\SAP\Common 复制:Common文件夹所有文件替换
- No.2.7
响应式 什么是响应式网页?就是一套代码适配不同的屏幕宽度,不同的适配 媒体查询:能够根据设备宽度的变化,设置差异化样式 开发常用写法: 媒体特性常用写法 max-width min-width @me ...
- [网鼎杯2020]you_raise_me_up
[网鼎杯2020]you_raise_me_up 目录 [网鼎杯2020]you_raise_me_up 题目 分析 解法一:sage discrete_log()使用示例 补充 解法二:python ...
- AWK nr nf
https://blog.csdn.net/sh13661847134/article/details/118018456 awk中NF,NR的含义awk中NF和NR的意义,其实你已经知道NF和NR的 ...
- 微信JS-SDK自定义分享接入的注意点
微信文档 ,https://developers.weixin.qq.com/doc/offiaccount/OA_Web_Apps/JS-SDK.html, 在用微信自定义分享,遇到了几个坑,记录一 ...
- git -----已经被跟踪文件如何在本地提交时忽略
git update-index --assume-unchanged C.md 注:忽略后将不再拉取和提交c.md这个文件 git update-index --no-assume-unchange ...
- 073_SFDC Limit
我们在开发的过程中,应多注意一些系统自身的限制,以及遇到此类问题的应对措施: Description Synchronous Limit Asynchronous Limit Total number ...
- k8s部署-kubeadm
环境配置 内核配置 基本组件安装 高可用组件安装 kubeadm集群初始化